-
Notifications
You must be signed in to change notification settings - Fork 270
Description
I found a bug you use your mouse and keyboard up/down/left/right arrow keys together.
To Reproduce:
- Start Sample application on Windows.
- Maximize Main Window.
- Drop a Button on Design Service in Center of Screen.
- Move to Center of button with mouse pointer.
- Press primary mouse button to start moving/dragging button.
- While still holding primary mouse button move left or right with your mouse so that the button moves to a new location (do not release primary mouse button).
- Then Either Press and hold Left, Right, Up or Down Arrow key on Keyboard, while still holding the primary mouse button down
- Depress/Release primary mouse button.
- App Crashes. See below stack trace.
StackTrace:
`PlacementOperation is committed.
at ICSharpCode.WpfDesign.PlacementOperation.Abort()
at ICSharpCode.WpfDesign.Designer.Services.MoveLogic.Cancel()
at ICSharpCode.WpfDesign.Designer.Services.DragMoveMouseGesture.OnStopped()
at ICSharpCode.WpfDesign.Designer.Services.MouseGestureBase.Stop()
at ICSharpCode.WpfDesign.Designer.Services.MouseGestureBase.OnLostMouseCapture(Object sender, MouseEventArgs e)
at System.Windows.Input.MouseEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.MouseDevice.ChangeMouseCapture(IInputElement mouseCapture, IMouseInputProvider providerCapture, CaptureMode captureMode, Int32 timestamp)
at System.Windows.Input.MouseDevice.PreNotifyInput(Object sender, NotifyInputEventArgs e)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
[ICSharpCode.WpfDesign.PlacementOperation+PlacementOperationException] - PlacementOperation is committed.
`
I have also done my own fix: here: CorrieMeyer@469f6a3
Not sure if it is the correct way, but if your happy with it I will do a pull request for the fix.