diff options
Diffstat (limited to 'src/Page.vala')
-rw-r--r-- | src/Page.vala | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/Page.vala b/src/Page.vala index 7504743..88fecc7 100644 --- a/src/Page.vala +++ b/src/Page.vala @@ -174,7 +174,7 @@ public abstract class Page : Gtk.ScrolledWindow { event_source.add_events(Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.POINTER_MOTION_HINT_MASK | Gdk.EventMask.BUTTON_MOTION_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK - | Gdk.EventMask.SCROLL_MASK); + | Gdk.EventMask.SCROLL_MASK | Gdk.EventMask.SMOOTH_SCROLL_MASK); event_source.button_press_event.connect(on_button_pressed_internal); event_source.button_release_event.connect(on_button_released_internal); event_source.motion_notify_event.connect(on_motion_internal); @@ -1038,6 +1038,23 @@ public abstract class Page : Gtk.ScrolledWindow { case Gdk.ScrollDirection.RIGHT: return on_mousewheel_right(event); + + case Gdk.ScrollDirection.SMOOTH: + { + double dx, dy; + event.get_scroll_deltas(out dx, out dy); + + if (dy < 0) + return on_mousewheel_up(event); + else if (dy > 0) + return on_mousewheel_down(event); + else if (dx < 0) + return on_mousewheel_left(event); + else if (dx > 0) + return on_mousewheel_right(event); + else + return false; + } default: return false; @@ -1301,6 +1318,9 @@ public abstract class CheckerboardPage : Page { private Gtk.Menu page_context_menu; public override Gtk.Menu? get_page_context_menu() { + if (page_context_menu_path == null) + return null; + if (page_context_menu == null) { var model = this.builder.get_object (page_context_menu_path) as GLib.MenuModel; |