chiark / gitweb /
js: Provide mouseevent_pos
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 3 Apr 2021 22:53:54 +0000 (23:53 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 4 Apr 2021 19:07:53 +0000 (20:07 +0100)
Empirically this seems to work.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
templates/script.ts

index 033f3862e5841a0a7707dd2ec0240f04b4763180..2cd23735ec690a07a0cd622c333e3d65c3900a1c 100644 (file)
@@ -883,6 +883,15 @@ function drag_mousedown(e : MouseEvent, shifted: boolean) {
   window.addEventListener('mouseup',   drag_mouseup,   true);
 }
 
+function mouseevent_pos(e: MouseEvent): Pos {
+  let ctm = space.getScreenCTM()!;
+  let px = (e.clientX - ctm.e)/(ctm.a * firefox_bug_zoom_factor_compensation);
+  let py = (e.clientY - ctm.f)/(ctm.d * firefox_bug_zoom_factor_compensation);
+  let pos: Pos = [px, py];
+  console.log('mouseevent_pos', pos);
+  return pos;
+}
+
 function ungrab_all() {
   for (let tpiece of Object.keys(pieces)) {
     let tp = pieces[tpiece]!;