From 3f190c1efce1de1cf3db4ee38b75cae50fe30085 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 12 Apr 2021 19:27:19 +0100 Subject: [PATCH] js: Break out mouse_find_lowest Signed-off-by: Ian Jackson --- templates/script.ts | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/templates/script.ts b/templates/script.ts index 40c66248..754c666f 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -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) { -- 2.30.2