From d5ec74173ea6f2fbccd34ee07174e38b541f05ff Mon Sep 17 00:00:00 2001 From: rhenck <richard.henck@iqb.hu-berlin.de> Date: Wed, 18 Aug 2021 14:33:26 +0200 Subject: [PATCH] [editor] Select element when start dragging --- .../canvas/canvas-element-overlay.ts | 4 +-- .../dynamic-canvas-overlay.component.ts | 26 +++++++++---------- .../canvas/static-canvas-overlay.component.ts | 4 +-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/projects/editor/src/app/components/unit-view/page-view/canvas/canvas-element-overlay.ts b/projects/editor/src/app/components/unit-view/page-view/canvas/canvas-element-overlay.ts index 49d75c0e5..5ab8645be 100644 --- a/projects/editor/src/app/components/unit-view/page-view/canvas/canvas-element-overlay.ts +++ b/projects/editor/src/app/components/unit-view/page-view/canvas/canvas-element-overlay.ts @@ -71,8 +71,8 @@ export abstract class CanvasElementOverlay { this.selected = newValue; } - click(event: MouseEvent): void { - if (event.shiftKey) { + selectElement(multiSelect: boolean = false): void { + if (multiSelect) { this.selectionService.selectElement({ componentElement: this, multiSelect: true }); } else { this.selectionService.selectElement({ componentElement: this, multiSelect: false }); diff --git a/projects/editor/src/app/components/unit-view/page-view/canvas/dynamic-canvas-overlay.component.ts b/projects/editor/src/app/components/unit-view/page-view/canvas/dynamic-canvas-overlay.component.ts index 06a68aa32..684c7e418 100644 --- a/projects/editor/src/app/components/unit-view/page-view/canvas/dynamic-canvas-overlay.component.ts +++ b/projects/editor/src/app/components/unit-view/page-view/canvas/dynamic-canvas-overlay.component.ts @@ -8,20 +8,20 @@ import { UnitUIElement } from '../../../../../../../common/unit'; @Component({ selector: 'app-dynamic-canvas-overlay', template: ` - <div #draggableElement class="draggable-element" [class.draggable-element-selected]="selected" - cdkDrag [cdkDragData]="{dragType: 'move', element: element}" [cdkDragDisabled]="!selected" - (click)="click($event)" (dblclick)="openEditDialog()" - [style.height.%]="100" - [style.border]="selected ? '1px solid' : ''"> - <div *ngIf="selected" class="resizeHandle" - cdkDrag [cdkDragData]="{dragType: 'resize', element: element}" - (cdkDragStarted)="dragStart()" (cdkDragEnded)="dragEnd()" (cdkDragMoved)="resizeElement($event)" - [style.right.px]="2" [style.bottom.px]="-3"> - <mat-icon>aspect_ratio</mat-icon> - <div *cdkDragPlaceholder></div> + <div #draggableElement class="draggable-element" [class.draggable-element-selected]="selected" + cdkDrag [cdkDragData]="{dragType: 'move', element: element}" [cdkDragDisabled]="!selected" + (click)="selectElement($event.shiftKey)" (dblclick)="openEditDialog()" (cdkDragStarted)="selectElement()" + [style.height.%]="100" + [style.border]="selected ? '1px solid' : ''"> + <div *ngIf="selected" class="resizeHandle" + cdkDrag [cdkDragData]="{dragType: 'resize', element: element}" + (cdkDragStarted)="dragStart()" (cdkDragEnded)="dragEnd()" (cdkDragMoved)="resizeElement($event)" + [style.right.px]="2" [style.bottom.px]="-3"> + <mat-icon>aspect_ratio</mat-icon> + <div *cdkDragPlaceholder></div> + </div> + <ng-template #elementContainer></ng-template> </div> - <ng-template #elementContainer></ng-template> - </div> `, styles: [ '.draggable-element {position: relative}', diff --git a/projects/editor/src/app/components/unit-view/page-view/canvas/static-canvas-overlay.component.ts b/projects/editor/src/app/components/unit-view/page-view/canvas/static-canvas-overlay.component.ts index 9ccf5836e..6927c91b0 100644 --- a/projects/editor/src/app/components/unit-view/page-view/canvas/static-canvas-overlay.component.ts +++ b/projects/editor/src/app/components/unit-view/page-view/canvas/static-canvas-overlay.component.ts @@ -7,8 +7,8 @@ import { CanvasElementOverlay } from './canvas-element-overlay'; template: ` <!-- Needs extra div because styling can interfere with drag and drop--> <div class="draggable-element" [class.draggable-element-selected]="selected" - cdkDrag [cdkDragData]="this.element" [cdkDragDisabled]="!selected" - (click)="click($event)" + cdkDrag [cdkDragData]="this.element" + (click)="selectElement($event.shiftKey)" (cdkDragStarted)="selectElement()" (dblclick)="openEditDialog()"> <div [style.position]="'absolute'" [style.border]="selected ? '2px solid' : ''" -- GitLab