From 0cc553f69e5c73a0436c2348b9bd3bd3bced6d98 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 30 Sep 2015 23:23:30 +0300 Subject: [PATCH] Added mouse wheel support to GTK backend --- src/Gtk/Perspex.Gtk/WindowImpl.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Gtk/Perspex.Gtk/WindowImpl.cs b/src/Gtk/Perspex.Gtk/WindowImpl.cs index 7b4b149dc3..503ca9266a 100644 --- a/src/Gtk/Perspex.Gtk/WindowImpl.cs +++ b/src/Gtk/Perspex.Gtk/WindowImpl.cs @@ -167,6 +167,23 @@ namespace Perspex.Gtk return true; } + protected override bool OnScrollEvent(EventScroll evnt) + { + double step = 1; + var delta = new Vector(); + if (evnt.Direction == ScrollDirection.Down) + delta = new Vector(0, -step); + else if (evnt.Direction == ScrollDirection.Up) + delta = new Vector(0, step); + else if (evnt.Direction == ScrollDirection.Right) + delta = new Vector(-step, 0); + if (evnt.Direction == ScrollDirection.Left) + delta = new Vector(step, 0); + var e = new RawMouseWheelEventArgs(GtkMouseDevice.Instance, evnt.Time, _inputRoot, new Point(evnt.X, evnt.Y), delta, GetModifierKeys(evnt.State)); + Input(e); + return base.OnScrollEvent(evnt); + } + protected override bool OnButtonReleaseEvent(EventButton evnt) { var e = new RawMouseEventArgs(