From 1cd7f46315a9ebcbe0f025e7ef826519b67cfbce Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 4 Feb 2016 12:08:18 +0100 Subject: [PATCH] Revert "Added InputRoot to all raw input events." This reverts commit ae747c6dc753a95566c15793c58c14771568d794. --- src/Gtk/Perspex.Gtk/WindowImpl.cs | 11 +++++------ src/Perspex.Input/Raw/RawInputEventArgs.cs | 13 +++---------- src/Perspex.Input/Raw/RawKeyEventArgs.cs | 3 +-- src/Perspex.Input/Raw/RawMouseEventArgs.cs | 4 ++-- src/Perspex.Input/Raw/RawMouseWheelEventArgs.cs | 4 ++-- src/Perspex.Input/Raw/RawTextInputEventArgs.cs | 11 +++-------- src/Windows/Perspex.Win32/WindowImpl.cs | 14 ++++++-------- tests/Perspex.Controls.UnitTests/TopLevelTests.cs | 1 - 8 files changed, 22 insertions(+), 39 deletions(-) diff --git a/src/Gtk/Perspex.Gtk/WindowImpl.cs b/src/Gtk/Perspex.Gtk/WindowImpl.cs index 2c732c84e0..0435a052ba 100644 --- a/src/Gtk/Perspex.Gtk/WindowImpl.cs +++ b/src/Gtk/Perspex.Gtk/WindowImpl.cs @@ -231,8 +231,8 @@ namespace Perspex.Gtk var e = new RawMouseEventArgs( GtkMouseDevice.Instance, - _inputRoot, evnt.Time, + _inputRoot, evnt.Button == 1 ? RawMouseEventType.LeftButtonDown : evnt.Button == 3 ? RawMouseEventType.RightButtonDown : RawMouseEventType.MiddleButtonDown, @@ -253,7 +253,7 @@ namespace Perspex.Gtk delta = new Vector(-step, 0); if (evnt.Direction == ScrollDirection.Left) delta = new Vector(step, 0); - var e = new RawMouseWheelEventArgs(GtkMouseDevice.Instance, _inputRoot, evnt.Time, new Point(evnt.X, evnt.Y), delta, GetModifierKeys(evnt.State)); + 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); } @@ -262,8 +262,8 @@ namespace Perspex.Gtk { var e = new RawMouseEventArgs( GtkMouseDevice.Instance, - _inputRoot, evnt.Time, + _inputRoot, evnt.Button == 1 ? RawMouseEventType.LeftButtonUp : evnt.Button == 3 ? RawMouseEventType.RightButtonUp : RawMouseEventType.MiddleButtonUp, @@ -296,7 +296,6 @@ namespace Perspex.Gtk return true; var e = new RawKeyEventArgs( GtkKeyboardDevice.Instance, - _inputRoot, evnt.Time, evnt.Type == EventType.KeyPress ? RawKeyEventType.KeyDown : RawKeyEventType.KeyUp, GtkKeyboardDevice.ConvertKey(evnt.Key), GetModifierKeys(evnt.State)); @@ -310,7 +309,7 @@ namespace Perspex.Gtk private void ImContext_Commit(object o, Gtk.CommitArgs args) { - Input(new RawTextInputEventArgs(GtkKeyboardDevice.Instance, _inputRoot, _lastKeyEventTimestamp, args.Str)); + Input(new RawTextInputEventArgs(GtkKeyboardDevice.Instance, _lastKeyEventTimestamp, args.Str)); } protected override bool OnExposeEvent(EventExpose evnt) @@ -332,8 +331,8 @@ namespace Perspex.Gtk var e = new RawMouseEventArgs( GtkMouseDevice.Instance, - _inputRoot, evnt.Time, + _inputRoot, RawMouseEventType.Move, position, GetModifierKeys(evnt.State)); Input(e); diff --git a/src/Perspex.Input/Raw/RawInputEventArgs.cs b/src/Perspex.Input/Raw/RawInputEventArgs.cs index 583032041a..7708165a14 100644 --- a/src/Perspex.Input/Raw/RawInputEventArgs.cs +++ b/src/Perspex.Input/Raw/RawInputEventArgs.cs @@ -7,23 +7,16 @@ namespace Perspex.Input.Raw { public class RawInputEventArgs : EventArgs { - public RawInputEventArgs( - IInputDevice device, - IInputRoot root, - uint timestamp) + public RawInputEventArgs(IInputDevice device, uint timestamp) { Contract.Requires(device != null); - Contract.Requires(root != null); Device = device; - Root = root; Timestamp = timestamp; } - public IInputDevice Device { get; } + public IInputDevice Device { get; private set; } - public IInputRoot Root { get; } - - public uint Timestamp { get; } + public uint Timestamp { get; private set; } } } diff --git a/src/Perspex.Input/Raw/RawKeyEventArgs.cs b/src/Perspex.Input/Raw/RawKeyEventArgs.cs index 02ce86d59a..8f54a10a68 100644 --- a/src/Perspex.Input/Raw/RawKeyEventArgs.cs +++ b/src/Perspex.Input/Raw/RawKeyEventArgs.cs @@ -13,11 +13,10 @@ namespace Perspex.Input.Raw { public RawKeyEventArgs( IKeyboardDevice device, - IInputRoot root, uint timestamp, RawKeyEventType type, Key key, InputModifiers modifiers) - : base(device, root, timestamp) + : base(device, timestamp) { Key = key; Type = type; diff --git a/src/Perspex.Input/Raw/RawMouseEventArgs.cs b/src/Perspex.Input/Raw/RawMouseEventArgs.cs index 6fd6fef94d..154515085b 100644 --- a/src/Perspex.Input/Raw/RawMouseEventArgs.cs +++ b/src/Perspex.Input/Raw/RawMouseEventArgs.cs @@ -22,11 +22,11 @@ namespace Perspex.Input.Raw { public RawMouseEventArgs( IInputDevice device, - IInputRoot root, uint timestamp, + IInputRoot root, RawMouseEventType type, Point position, InputModifiers inputModifiers) - : base(device, root, timestamp) + : base(device, timestamp) { Contract.Requires(device != null); Contract.Requires(root != null); diff --git a/src/Perspex.Input/Raw/RawMouseWheelEventArgs.cs b/src/Perspex.Input/Raw/RawMouseWheelEventArgs.cs index 919026aac3..1684766d14 100644 --- a/src/Perspex.Input/Raw/RawMouseWheelEventArgs.cs +++ b/src/Perspex.Input/Raw/RawMouseWheelEventArgs.cs @@ -10,11 +10,11 @@ namespace Perspex.Input.Raw { public RawMouseWheelEventArgs( IInputDevice device, - IInputRoot root, uint timestamp, + IInputRoot root, Point position, Vector delta, InputModifiers inputModifiers) - : base(device, root, timestamp, RawMouseEventType.Wheel, position, inputModifiers) + : base(device, timestamp, root, RawMouseEventType.Wheel, position, inputModifiers) { Delta = delta; } diff --git a/src/Perspex.Input/Raw/RawTextInputEventArgs.cs b/src/Perspex.Input/Raw/RawTextInputEventArgs.cs index 1c6b19983f..810f9599a2 100644 --- a/src/Perspex.Input/Raw/RawTextInputEventArgs.cs +++ b/src/Perspex.Input/Raw/RawTextInputEventArgs.cs @@ -5,16 +5,11 @@ namespace Perspex.Input.Raw { public class RawTextInputEventArgs : RawInputEventArgs { - public RawTextInputEventArgs( - IKeyboardDevice device, - IInputRoot root, - uint timestamp, - string text) - : base(device, root, timestamp) + public string Text { get; set; } + + public RawTextInputEventArgs(IKeyboardDevice device, uint timestamp, string text) : base(device, timestamp) { Text = text; } - - public string Text { get; set; } } } diff --git a/src/Windows/Perspex.Win32/WindowImpl.cs b/src/Windows/Perspex.Win32/WindowImpl.cs index c749b495ff..49383c10e3 100644 --- a/src/Windows/Perspex.Win32/WindowImpl.cs +++ b/src/Windows/Perspex.Win32/WindowImpl.cs @@ -366,7 +366,6 @@ namespace Perspex.Win32 case UnmanagedMethods.WindowsMessage.WM_SYSKEYDOWN: e = new RawKeyEventArgs( WindowsKeyboardDevice.Instance, - _owner, timestamp, RawKeyEventType.KeyDown, KeyInterop.KeyFromVirtualKey((int)wParam), WindowsKeyboardDevice.Instance.Modifiers); @@ -376,7 +375,6 @@ namespace Perspex.Win32 case UnmanagedMethods.WindowsMessage.WM_SYSKEYUP: e = new RawKeyEventArgs( WindowsKeyboardDevice.Instance, - _owner, timestamp, RawKeyEventType.KeyUp, KeyInterop.KeyFromVirtualKey((int)wParam), WindowsKeyboardDevice.Instance.Modifiers); @@ -385,7 +383,7 @@ namespace Perspex.Win32 // Ignore control chars if (wParam.ToInt32() >= 32) { - e = new RawTextInputEventArgs(WindowsKeyboardDevice.Instance, _owner, timestamp, + e = new RawTextInputEventArgs(WindowsKeyboardDevice.Instance, timestamp, new string((char)wParam.ToInt32(), 1)); } @@ -410,8 +408,8 @@ namespace Perspex.Win32 case UnmanagedMethods.WindowsMessage.WM_MBUTTONDOWN: e = new RawMouseEventArgs( WindowsMouseDevice.Instance, - _owner, timestamp, + _owner, msg == (int)UnmanagedMethods.WindowsMessage.WM_LBUTTONDOWN ? RawMouseEventType.LeftButtonDown : msg == (int)UnmanagedMethods.WindowsMessage.WM_RBUTTONDOWN @@ -425,8 +423,8 @@ namespace Perspex.Win32 case UnmanagedMethods.WindowsMessage.WM_MBUTTONUP: e = new RawMouseEventArgs( WindowsMouseDevice.Instance, - _owner, timestamp, + _owner, msg == (int) UnmanagedMethods.WindowsMessage.WM_LBUTTONUP ? RawMouseEventType.LeftButtonUp : msg == (int) UnmanagedMethods.WindowsMessage.WM_RBUTTONUP @@ -451,8 +449,8 @@ namespace Perspex.Win32 e = new RawMouseEventArgs( WindowsMouseDevice.Instance, - _owner, timestamp, + _owner, RawMouseEventType.Move, PointFromLParam(lParam), GetMouseModifiers(wParam)); @@ -461,8 +459,8 @@ namespace Perspex.Win32 case UnmanagedMethods.WindowsMessage.WM_MOUSEWHEEL: e = new RawMouseWheelEventArgs( WindowsMouseDevice.Instance, - _owner, timestamp, + _owner, ScreenToClient(PointFromLParam(lParam)), new Vector(0, ((int)wParam >> 16) / wheelDelta), GetMouseModifiers(wParam)); break; @@ -471,8 +469,8 @@ namespace Perspex.Win32 _trackingMouse = false; e = new RawMouseEventArgs( WindowsMouseDevice.Instance, - _owner, timestamp, + _owner, RawMouseEventType.LeaveWindow, new Point(), WindowsKeyboardDevice.Instance.Modifiers); break; diff --git a/tests/Perspex.Controls.UnitTests/TopLevelTests.cs b/tests/Perspex.Controls.UnitTests/TopLevelTests.cs index 445e6747d7..9999630b85 100644 --- a/tests/Perspex.Controls.UnitTests/TopLevelTests.cs +++ b/tests/Perspex.Controls.UnitTests/TopLevelTests.cs @@ -266,7 +266,6 @@ namespace Perspex.Controls.UnitTests var input = new RawKeyEventArgs( new Mock().Object, - new Mock().Object, 0, RawKeyEventType.KeyDown, Key.A, InputModifiers.None);