From f79e4d2ce45016d07edef2c8ccfa4a3e64c2ca5c Mon Sep 17 00:00:00 2001
From: jojohoch <joachim.hoch@iqb.hu-berlin.de>
Date: Fri, 12 Nov 2021 11:07:06 +0100
Subject: [PATCH] [player] Hide magnifier when mouse is not over image.

The magnifier is always visible in the editor
---
 projects/common/element-components/image.component.ts     | 8 ++++++--
 projects/common/element-components/magnifier.component.ts | 4 ++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/projects/common/element-components/image.component.ts b/projects/common/element-components/image.component.ts
index cb24d1eff..cdf49e469 100644
--- a/projects/common/element-components/image.component.ts
+++ b/projects/common/element-components/image.component.ts
@@ -8,13 +8,16 @@ import { ValueChangeElement } from '../models/uI-element';
   template: `
     <div [style.display]="'flex'"
          [style.height.%]="100"
-         [style.width.%]="100">
+         [style.width.%]="100"
+         (mouseover)="magnifierVisible = true"
+         (mouseenter)="magnifierVisible = true"
+         (mouseleave)="magnifierVisible = false">
       <div class="image-container">
         <img #image
              [src]="elementModel.src | safeResourceUrl"
              [alt]="'imageNotFound' | translate"
              [class]="elementModel.dynamicPositioning? 'dynamic-image' : 'static-image'">
-        <app-magnifier *ngIf="elementModel.magnifier"
+        <app-magnifier *ngIf="elementModel.magnifier && ( magnifierVisible || project === 'editor')"
                        [imageId]="elementModel.id"
                        [size]="elementModel.magnifierSize"
                        [zoom]="elementModel.magnifierZoom"
@@ -33,5 +36,6 @@ import { ValueChangeElement } from '../models/uI-element';
 })
 export class ImageComponent extends ElementComponent {
   @Output() elementValueChanged = new EventEmitter<ValueChangeElement>();
+  magnifierVisible = false;
   elementModel!: ImageElement;
 }
diff --git a/projects/common/element-components/magnifier.component.ts b/projects/common/element-components/magnifier.component.ts
index b80d2851f..e896aca9a 100644
--- a/projects/common/element-components/magnifier.component.ts
+++ b/projects/common/element-components/magnifier.component.ts
@@ -43,8 +43,8 @@ export class Magnifier {
       this.used = true;
       this.elementValueChanged.emit({ id: this.imageId, values: [false, true] });
     }
-    this.left = this.calculateGlassPosition(this.image.width, event.offsetX);
-    this.top = this.calculateGlassPosition(this.image.height, event.offsetY);
+    this.left = this.calculateGlassPosition(this.image.width, event.offsetX) - 1;
+    this.top = this.calculateGlassPosition(this.image.height, event.offsetY) - 1;
     this.backgroundPosition =
       `-${
         this.calculateBackgroundPosition(this.image.width, event.offsetX)
-- 
GitLab