diff options
author | Aylur <[email protected]> | 2024-06-27 15:34:31 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-06-27 15:34:31 +0200 |
commit | 302172a876f2d180931ebb67926b845c49cd0388 (patch) | |
tree | ca0a492dfe0d7d7a76899e5aca0af07a638033fe /src/widget/eventbox.vala | |
parent | a5d2c94aafc0c16b0f581cef472bbcf969b7ee1b (diff) |
fix button hover event
Diffstat (limited to 'src/widget/eventbox.vala')
-rw-r--r-- | src/widget/eventbox.vala | 61 |
1 files changed, 13 insertions, 48 deletions
diff --git a/src/widget/eventbox.vala b/src/widget/eventbox.vala index bee7cbc..6b715cc 100644 --- a/src/widget/eventbox.vala +++ b/src/widget/eventbox.vala @@ -20,15 +20,7 @@ public class EventBox : Gtk.EventBox { if (event.window == self.get_window() && event.detail != Gdk.NotifyType.INFERIOR) { this.set_state_flags(Gtk.StateFlags.PRELIGHT, false); - var hover_event = HoverEvent(); - hover_event.lost = false; - hover_event.time = event.time; - hover_event.x = event.x; - hover_event.y = event.y; - hover_event.modifier = event.state; - hover_event.mode = event.mode; - hover_event.detail = event.detail; - hover(hover_event); + hover(HoverEvent(event) { lost = false }); } }); @@ -36,58 +28,24 @@ public class EventBox : Gtk.EventBox { if (event.window == self.get_window() && event.detail != Gdk.NotifyType.INFERIOR) { this.unset_state_flags(Gtk.StateFlags.PRELIGHT); - var hover_event = HoverEvent(); - hover_event.lost = true; - hover_event.time = event.time; - hover_event.x = event.x; - hover_event.y = event.y; - hover_event.modifier = event.state; - hover_event.mode = event.mode; - hover_event.detail = event.detail; - hover_lost(hover_event); + hover_lost(HoverEvent(event) { lost = true }); } }); button_press_event.connect((event) => { - var click_event = ClickEvent(); - click_event.release = false; - click_event.time = event.time; - click_event.x = event.x; - click_event.y = event.y; - click_event.button = (MouseButton)event.button; - click_event.modifier = event.state; - click(click_event); + click(ClickEvent(event) { release = false }); }); button_release_event.connect((event) => { - var click_event = ClickEvent(); - click_event.release = true; - click_event.x = event.x; - click_event.y = event.y; - click_event.button = (MouseButton)event.button; - click_event.modifier = event.state; - click_release(click_event); + click_release(ClickEvent(event) { release = true }); }); scroll_event.connect((event) => { - var scroll_event = ScrollEvent(); - scroll_event.time = event.time; - scroll_event.x = event.x; - scroll_event.y = event.y; - scroll_event.modifier = event.state; - scroll_event.direction = event.direction; - scroll_event.delta_x = event.delta_x; - scroll_event.delta_y = event.delta_y; - scroll(scroll_event); + scroll(ScrollEvent(event)); }); motion_notify_event.connect((event) => { - var motion_event = MotionEvent(); - motion_event.time = event.time; - motion_event.x = event.x; - motion_event.y = event.y; - motion_event.modifier = event.state; - motion(motion_event); + motion(MotionEvent(event)); }); } } @@ -97,5 +55,12 @@ public struct MotionEvent { double x; double y; Gdk.ModifierType modifier; + + public MotionEvent(Gdk.EventMotion event) { + this.time = event.time; + this.x = event.x; + this.y = event.y; + this.modifier = event.state; + } } } |