From e6766aa1ce70e77b985b1a7a0443a906adff4e5f Mon Sep 17 00:00:00 2001 From: Edwin Jakobs Date: Fri, 22 Aug 2025 16:17:03 +0200 Subject: [PATCH] [orx-panel] Skip hidden elements during event propagation traversal --- .../main/kotlin/org/openrndr/panel/ControlManager.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/orx-jvm/orx-panel/src/main/kotlin/org/openrndr/panel/ControlManager.kt b/orx-jvm/orx-panel/src/main/kotlin/org/openrndr/panel/ControlManager.kt index db2438d6..d8b1ffb9 100644 --- a/orx-jvm/orx-panel/src/main/kotlin/org/openrndr/panel/ControlManager.kt +++ b/orx-jvm/orx-panel/src/main/kotlin/org/openrndr/panel/ControlManager.kt @@ -130,7 +130,12 @@ class ControlManager : Extension { fun scroll(event: MouseEvent) { fun traverse(element: Element) { - element.children.forEach(::traverse) + if (element.computedStyle.display == Display.NONE) { + return + } + for (child in element.children) { + traverse(child) + } if (!event.propagationCancelled) { if (event.position in element.screenArea && element.computedStyle.display != Display.NONE) { element.mouse.scrolled.trigger(event) @@ -174,7 +179,9 @@ class ControlManager : Extension { logger.debug { "press event: $event" } val candidates = mutableListOf>() fun traverse(element: Element, depth: Int = 0) { - + if (element.computedStyle.display == Display.NONE) { + return + } if (element.computedStyle.overflow == Overflow.Scroll) { if (event.position !in element.screenArea) { return