]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 740012 ] GetKeyState returns 16-Bit value on WindowsNT
authorJulian Smart <julian@anthemion.co.uk>
Wed, 21 May 2003 18:43:03 +0000 (18:43 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 21 May 2003 18:43:03 +0000 (18:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/private.h
src/msw/treectrl.cpp
src/msw/window.cpp

index e3cb8dbc7bc7fe5376973c9041eb7a3937f85e7b..c017a715f76dc9c41d63bea26da4153d5ef0d134 100644 (file)
@@ -286,12 +286,18 @@ HCURSOR wxBitmapToHCURSOR(const wxBitmap& bmp, int hotSpotX, int hotSpotY);
 // get the current state of SHIFT/CTRL keys
 inline bool wxIsShiftDown()
 {
-    return (::GetKeyState(VK_SHIFT) & 0x100) != 0;
+//    return (::GetKeyState(VK_SHIFT) & 0x100) != 0;
+    // Returns different negative values on WinME and WinNT,
+    // so simply test for negative value.
+    return ::GetKeyState(VK_SHIFT) < 0;
 }
 
 inline bool wxIsCtrlDown()
 {
-    return (::GetKeyState(VK_CONTROL) & 0x100) != 0;
+//    return (::GetKeyState(VK_CONTROL) & 0x100) != 0;
+    // Returns different negative values on WinME and WinNT,
+    // so simply test for negative value.
+    return ::GetKeyState(VK_CONTROL) < 0;
 }
 
 // wrapper around GetWindowRect() and GetClientRect() APIs doing error checking
index a579355d50ef29c2753264b5a3c6278e397507cb..d412e56ef7efbd7b6f55351293b891eaaf0c039d 100644 (file)
@@ -2398,7 +2398,10 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                 // similar to the ones from a "real" WM_KEYDOWN so that
                 // CreateKeyEvent() works correctly
                 WXLPARAM lParam =
-                    (::GetKeyState(VK_MENU) & 0x100 ? KF_ALTDOWN : 0) << 16;
+//                    (::GetKeyState(VK_MENU) & 0x100 ? KF_ALTDOWN : 0) << 16;
+                     // Returns different negative values on WinME and WinNT,
+                     // so simply test for negative value.
+                     (::GetKeyState(VK_MENU) < 0 ? KF_ALTDOWN : 0) << 16;
 
                 WXWPARAM wParam = info->wVKey;
 
index 0374b532cd6710a535e9bd91be69aca928295888..e9772cc34a5c380f1e93def181646bfe908dc9f7 100644 (file)
@@ -3965,7 +3965,10 @@ void wxWindowMSW::InitMouseEvent(wxMouseEvent& event,
     event.m_leftDown = (flags & MK_LBUTTON) != 0;
     event.m_middleDown = (flags & MK_MBUTTON) != 0;
     event.m_rightDown = (flags & MK_RBUTTON) != 0;
-    event.m_altDown = (::GetKeyState(VK_MENU) & 0x80000000) != 0;
+ //   event.m_altDown = (::GetKeyState(VK_MENU) & 0x80000000) != 0;
+    // Returns different negative values on WinME and WinNT,
+    // so simply test for negative value.
+    event.m_altDown = ::GetKeyState(VK_MENU) < 0;
 
     event.SetTimestamp(s_currentMsg.time);
     event.m_eventObject = this;