Переглянути джерело

Make selection handle resolution independent (#948)

They shouldn't really change when zooming in or out.
Christopher Chedeau 5 роки тому
батько
коміт
e19088f214
1 змінених файлів з 6 додано та 0 видалено
  1. 6 0
      src/renderer/renderScene.ts

+ 6 - 0
src/renderer/renderScene.ts

@@ -155,12 +155,15 @@ export function renderScene(
 
       const initialLineDash = context.getLineDash();
       context.setLineDash([8 / sceneState.zoom, 4 / sceneState.zoom]);
+      const lineWidth = context.lineWidth;
+      context.lineWidth = 1 / sceneState.zoom;
       context.strokeRect(
         elementX1 - dashledLinePadding,
         elementY1 - dashledLinePadding,
         elementWidth + dashledLinePadding * 2,
         elementHeight + dashledLinePadding * 2,
       );
+      context.lineWidth = lineWidth;
       context.setLineDash(initialLineDash);
     });
     resetZoom(context);
@@ -174,8 +177,11 @@ export function renderScene(
       Object.values(handlers)
         .filter(handler => handler !== undefined)
         .forEach(handler => {
+          const lineWidth = context.lineWidth;
+          context.lineWidth = 1 / sceneState.zoom;
           context.fillRect(handler[0], handler[1], handler[2], handler[3]);
           context.strokeRect(handler[0], handler[1], handler[2], handler[3]);
+          context.lineWidth = lineWidth;
         });
       resetZoom(context);
     }