chiark / gitweb /
js: Break out mouse_find_lowest
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 12 Apr 2021 18:27:19 +0000 (19:27 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 12 Apr 2021 18:27:19 +0000 (19:27 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
templates/script.ts

index 40c6624863bc5df5f7231d2aff0bf0cdcd7f73c8..754c666f888804cac7574fe2a53415ca27103300 100644 (file)
@@ -884,28 +884,28 @@ function mouse_find_predicate(
   else return { clicked, held: held!, pinned: pinned! };
 }
 
+function mouse_find_lowest(e: MouseEvent) {
+  let clickpos = mouseevent_pos(e);
+  let uelem = pieces_marker;
+  for (;;) {
+    uelem = uelem.nextElementSibling as any;
+    if (uelem == defs_marker) break;
+    let piece = uelem.dataset.piece!;
+    let p = pieces[piece]!;
+    if (p_bbox_contains(p, clickpos)) {
+      return mouse_clicked_one(piece);
+    }
+  }
+  return null;
+}
+
 function mouse_find_clicked(e: MouseEvent, target: SVGGraphicsElement,
                            piece: PieceId): MouseFindClicked
 {
-  let clicked: PieceId[];
-  let held;
-  let pinned;
-
   if (special_count == null) {
     return mouse_clicked_one(piece);
   } else if (special_count == 0) {
-    let clickpos = mouseevent_pos(e);
-    let uelem = pieces_marker;
-    for (;;) {
-      uelem = uelem.nextElementSibling as any;
-      if (uelem == defs_marker) break;
-      let piece = uelem.dataset.piece!;
-      let p = pieces[piece]!;
-      if (p_bbox_contains(p, clickpos)) {
-       return mouse_clicked_one(piece);
-      }
-    }
-    return null;
+    return mouse_find_lowest(e);
   } else {
     // special_count > 0
     let clickpos = mouseevent_pos(e);
@@ -914,8 +914,6 @@ function mouse_find_clicked(e: MouseEvent, target: SVGGraphicsElement,
       function(p) { return p_bbox_contains(p, clickpos); }
     )
   }
-
-  return { clicked, held, pinned };
 }
 
 function drag_mousedown(e : MouseEvent, shifted: boolean) {