From 4366e7c5f4b5dd8e5cb6da04f84e7cb8eabfd903 Mon Sep 17 00:00:00 2001
From: rhenck <richard.henck@iqb.hu-berlin.de>
Date: Thu, 14 Oct 2021 18:46:16 +0200
Subject: [PATCH] [editor] Fix deleting elements when they don't have focus

All elements get the 'aspect-inserted-element' class, which is checked
before deleting the element.
---
 .../unit-view/page-view/canvas/canvas-element-overlay.ts     | 5 +++--
 .../page-view/canvas/static-canvas-overlay.component.ts      | 2 +-
 2 files changed, 4 insertions(+), 3 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 46ebaf3f7..22b672d2d 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
@@ -54,8 +54,9 @@ export abstract class CanvasElementOverlay implements OnInit, OnDestroy {
 
   @HostListener('window:keydown', ['$event'])
   handleKeyDown(event: KeyboardEvent): void {
-    if (!(event.target as Element).tagName.includes('input'.toUpperCase()) &&
-        !(event.target as Element).tagName.includes('textarea'.toUpperCase()) &&
+    if ((event.target as Element).parentElement &&
+        (event.target as Element).parentElement!.parentElement &&
+        (event.target as Element).parentElement!.parentElement!.className.indexOf('aspect-inserted-element') > -1 &&
         event.key === 'Delete') {
       this.selectionService.selectedElements
         .pipe(take(1))
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 79e462e3d..c5c47e78d 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
@@ -26,7 +26,7 @@ import { CanvasElementOverlay } from './canvas-element-overlay';
           <mat-icon>aspect_ratio</mat-icon>
           <div *cdkDragPlaceholder></div>
         </div>
-        <div [style.width.px]="element.width"
+        <div class="aspect-inserted-element" [style.width.px]="element.width"
              [style.overflow]="'auto'"
              [style.height.px]="element.height">
           <ng-template #elementContainer></ng-template>
-- 
GitLab