Browse Source

Add global mouse position variable (#8793)

* :art: add global mouse position variable

* :art: add global mouse position variables

* :art: add global mouse position variable `coordinates`

* :art: Increase operating efficiency

* :art: Increase operating efficiency
Yingyi / 颖逸 2 years ago
parent
commit
4f812bcf0c
2 changed files with 24 additions and 0 deletions
  1. 16 0
      app/src/boot/globalShortcut.ts
  2. 8 0
      app/src/types/index.d.ts

+ 16 - 0
app/src/boot/globalShortcut.ts

@@ -106,6 +106,22 @@ export const globalShortcut = (app: App) => {
         }
     });
     window.addEventListener("mousemove", (event: MouseEvent & { target: HTMLElement }) => {
+        // https://github.com/siyuan-note/siyuan/pull/8793
+        const coordinates = window.siyuan.coordinates ?? (window.siyuan.coordinates = {
+            pageX: 0,
+            pageY: 0,
+            clientX: 0,
+            clientY: 0,
+            screenX: 0,
+            screenY: 0,
+        });
+        coordinates.pageX = event.pageX;
+        coordinates.pageY = event.pageY;
+        coordinates.clientX = event.clientX;
+        coordinates.clientY = event.clientY;
+        coordinates.screenX = event.screenX;
+        coordinates.screenY = event.screenY;
+
         if (window.siyuan.hideBreadcrumb) {
             document.querySelectorAll(".protyle-breadcrumb__bar--hide").forEach(item => {
                 item.classList.remove("protyle-breadcrumb__bar--hide");

+ 8 - 0
app/src/types/index.d.ts

@@ -280,6 +280,14 @@ interface ISiyuan {
     ctrlIsPressed?: boolean,
     altIsPressed?: boolean,
     shiftIsPressed?: boolean,
+    coordinates?: {
+        pageX: number,
+        pageY: number,
+        clientX: number,
+        clientY: number,
+        screenX: number,
+        screenY: number,
+    },
     menus?: import("../menus").Menus
     languages?: {
         [key: string]: any;