diff --git a/crates/eww/src/widgets/widget_definitions.rs b/crates/eww/src/widgets/widget_definitions.rs index d1be218..4130899 100644 --- a/crates/eww/src/widgets/widget_definitions.rs +++ b/crates/eww/src/widgets/widget_definitions.rs @@ -634,7 +634,7 @@ fn build_gtk_scrolledwindow(bargs: &mut BuilderArgs) -> Result Result { let gtk_widget = gtk::EventBox::new(); @@ -653,6 +653,17 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result { gtk::Inhibit(false) }); + // Support :active selector + gtk_widget.connect_button_press_event(|gtk_widget, _| { + gtk_widget.clone().set_state_flags(gtk::StateFlags::ACTIVE, false); + gtk::Inhibit(false) + }); + + gtk_widget.connect_button_release_event(|gtk_widget, _| { + gtk_widget.clone().unset_state_flags(gtk::StateFlags::ACTIVE); + gtk::Inhibit(false) + }); + def_widget!(bargs, _g, gtk_widget, { // @prop timeout - timeout of the command // @prop onscroll - event to execute when the user scrolls with the mouse over the widget. The placeholder `{}` used in the command will be replaced with either `up` or `down`.