diff --git a/wgui/src/event.rs b/wgui/src/event.rs index 2dab9e3..640ac11 100644 --- a/wgui/src/event.rs +++ b/wgui/src/event.rs @@ -2,10 +2,11 @@ use std::{ any::{Any, TypeId}, cell::RefMut, collections::HashSet, + ops::Deref, }; use glam::Vec2; -use slotmap::{DenseSlotMap, new_key_type}; +use slotmap::{new_key_type, DenseSlotMap}; use crate::{ animation::{self, Animation}, @@ -184,7 +185,7 @@ impl CallbackMetadata { } } -#[derive(Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum EventListenerKind { MousePress, MouseRelease, diff --git a/wgui/src/widget/mod.rs b/wgui/src/widget/mod.rs index 5371fba..a69eefa 100644 --- a/wgui/src/widget/mod.rs +++ b/wgui/src/widget/mod.rs @@ -264,9 +264,6 @@ impl WidgetState { // Consider all listeners on this widget, even if we had a Consume. // Store the highest value for return. *call_data.event_result = call_data.event_result.merge(new_result); - if !call_data.event_result.can_propagate() { - break; - } } Ok(()) } diff --git a/wlx-overlay-s/src/gui/panel/button.rs b/wlx-overlay-s/src/gui/panel/button.rs index 33a1419..5d534a3 100644 --- a/wlx-overlay-s/src/gui/panel/button.rs +++ b/wlx-overlay-s/src/gui/panel/button.rs @@ -69,7 +69,8 @@ pub(super) fn setup_custom_button( _ => return, }; - layout.add_event_listener(attribs.widget_id, *kind, callback); + let id = layout.add_event_listener(attribs.widget_id, *kind, callback); + log::debug!("Registered {action} on {:?} as {id:?}", attribs.widget_id); } } struct ShellButtonMutableState {