From 85e15c910abfc13410aa2c0dc50e4fabd74065f1 Mon Sep 17 00:00:00 2001 From: Chris Dumas Date: Wed, 2 Sep 2026 14:39:10 +0000 Subject: [PATCH] Fix H3 section control interactions --- js/h3_longvideos/index.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/js/h3_longvideos/index.js b/js/h3_longvideos/index.js index 2aeda16..72ac9ea 100644 --- a/js/h3_longvideos/index.js +++ b/js/h3_longvideos/index.js @@ -17,7 +17,7 @@ const GROUPS = [ { id: "refs", label: "Refs", - defaultCollapsed: false, + defaultCollapsed: true, widgets: ["ref_mode", "ref_image_size", "ref_noise_aug", "character_memory", "trim_seam", "vary_seed_per_shot", "handoff_offset"], }, { @@ -178,6 +178,18 @@ function findWidget(node, name) { return (node.widgets || []).find((widget) => widget?.name === name) || null; } +function isInteractiveTarget(target) { + return !!target?.closest?.("button, input, textarea, select, label"); +} + +function stopCanvasEvent(event) { + if (isInteractiveTarget(event.target)) event.stopPropagation(); +} + +function stopCanvasKeyboard(event) { + if (isInteractiveTarget(event.target)) event.stopImmediatePropagation(); +} + function setWidgetHidden(widget, hidden) { if (!widget) return; if (!widget._dh3lvOriginal) { @@ -300,6 +312,11 @@ function setupNode(node) { const list = document.createElement("div"); list.className = "dh3lv-sections-list"; root.append(head, list); + root.addEventListener("pointerdown", stopCanvasEvent); + root.addEventListener("mousedown", stopCanvasEvent); + root.addEventListener("click", stopCanvasEvent); + root.addEventListener("dblclick", stopCanvasEvent); + root.addEventListener("keydown", stopCanvasKeyboard, true); node._dh3lvUI = { root, list }; const widget = node.addDOMWidget(DOM_WIDGET_NAME, "custom", root, {