Browse Source

Merge pull request #214 from Perspex/ncarrillo-patch-2

Fix unable to move window after non client area msg
pull/223/head
Nelson Carrillo 11 years ago
parent
commit
8152ffd5b1
  1. 21
      src/Windows/Perspex.Win32/WindowImpl.cs

21
src/Windows/Perspex.Win32/WindowImpl.cs

@ -1,4 +1,4 @@
// Copyright (c) The Perspex Project. All rights reserved.
// Copyright (c) The Perspex Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Perspex.Input;
@ -306,10 +306,21 @@ namespace Perspex.Win32
}
break;
case UnmanagedMethods.WindowsMessage.WM_NCLBUTTONDOWN:
case UnmanagedMethods.WindowsMessage.WM_NCRBUTTONDOWN:
case UnmanagedMethods.WindowsMessage.WM_NCMBUTTONDOWN:
e = new RawMouseEventArgs(
WindowsMouseDevice.Instance,
timestamp,
_owner,
msg == (int)UnmanagedMethods.WindowsMessage.WM_NCLBUTTONDOWN
? RawMouseEventType.LeftButtonDown
: msg == (int)UnmanagedMethods.WindowsMessage.WM_NCRBUTTONDOWN
? RawMouseEventType.RightButtonDown
: RawMouseEventType.MiddleButtonDown,
new Point(0, 0), GetMouseModifiers(wParam));
break;
case UnmanagedMethods.WindowsMessage.WM_LBUTTONDOWN:
case UnmanagedMethods.WindowsMessage.WM_RBUTTONDOWN:
case UnmanagedMethods.WindowsMessage.WM_MBUTTONDOWN:
@ -324,7 +335,7 @@ namespace Perspex.Win32
: RawMouseEventType.MiddleButtonDown,
new Point((uint) lParam & 0xffff, (uint) lParam >> 16), GetMouseModifiers(wParam));
break;
case UnmanagedMethods.WindowsMessage.WM_LBUTTONUP:
case UnmanagedMethods.WindowsMessage.WM_RBUTTONUP:
case UnmanagedMethods.WindowsMessage.WM_MBUTTONUP:
@ -410,6 +421,10 @@ namespace Perspex.Win32
if (e != null && Input != null)
{
Input(e);
if (msg >= 161 && msg <= 173)
return UnmanagedMethods.DefWindowProc(hWnd, msg, wParam, lParam);
return IntPtr.Zero;
}

Loading…
Cancel
Save