]> git.saurik.com Git - wxWidgets.git/commitdiff
Always use FVIRTKEY for the accelerators under MSW.
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Dec 2009 16:44:09 +0000 (16:44 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Dec 2009 16:44:09 +0000 (16:44 +0000)
Not using FVIRTKEY results in problems in non-US keyboard layouts and, in
fact, we were already always using it because wxCharCodeWXToMSW() returned
true in its output IsVirtual argument most of the time.

Just do it always now and also remove IsVirtual parameter with badly (if at
all...) defined meaning from wxCharCodeWXToMSW() as it's not used anywhere any
longer.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/window.h
src/msw/accel.cpp
src/msw/window.cpp

index 51a09d5579dce373361b189ec5889850b1d32df6..c1c4e3555b296950683c894f1a74ce844406bd1e 100644 (file)
@@ -601,7 +601,7 @@ private:
 
 // kbd code translation
 WXDLLIMPEXP_CORE int wxCharCodeMSWToWX(int keySym, WXLPARAM lParam = 0);
-WXDLLIMPEXP_CORE WXWORD wxCharCodeWXToMSW(int id, bool *IsVirtual = NULL);
+WXDLLIMPEXP_CORE WXWORD wxCharCodeWXToMSW(int id);
 
 // window creation helper class: before creating a new HWND, instantiate an
 // object of this class on stack - this allows to process the messages sent to
index dfcb758f2b5663e046224a3bfe48007b8f6a341d..f3e2f10c7f797d9ed66b4fadb74a370a7bcead36 100644 (file)
@@ -34,8 +34,6 @@
 
 #include "wx/msw/private.h"
 
-extern WXWORD wxCharCodeWXToMSW(int id, bool *isVirtual);
-
 IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject)
 
 // ----------------------------------------------------------------------------
@@ -105,19 +103,15 @@ wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]
     {
         int flags = entries[i].GetFlags();
 
-        BYTE fVirt = 0;
+        BYTE fVirt = FVIRTKEY;
         if ( flags & wxACCEL_ALT )
-            fVirt |= FALT | FVIRTKEY;
+            fVirt |= FALT;
         if ( flags & wxACCEL_SHIFT )
-            fVirt |= FSHIFT | FVIRTKEY;
+            fVirt |= FSHIFT;
         if ( flags & wxACCEL_CTRL )
-            fVirt |= FCONTROL | FVIRTKEY;
-
-        bool isVirtual;
+            fVirt |= FCONTROL;
 
-        WORD key = wxCharCodeWXToMSW(entries[i].GetKeyCode(), &isVirtual);
-        if (isVirtual)
-            fVirt |= FVIRTKEY;
+        WORD key = wxCharCodeWXToMSW(entries[i].GetKeyCode());
 
         arr[i].fVirt = fVirt;
         arr[i].key = key;
index bad095f9e9eb1e13f827bf3550c410f7715271d3..be4d7d01d26fd6babf11eade82b562613f7cc406 100644 (file)
@@ -6095,11 +6095,8 @@ int wxCharCodeMSWToWX(int vk, WXLPARAM lParam)
     return wxk;
 }
 
-WXWORD wxCharCodeWXToMSW(int wxk, bool *isVirtual)
+WXWORD wxCharCodeWXToMSW(int wxk)
 {
-    if ( isVirtual )
-        *isVirtual = true;
-
     // check the table first
     for ( size_t n = 0; n < WXSIZEOF(gs_specialKeys); n++ )
     {
@@ -6174,8 +6171,6 @@ WXWORD wxCharCodeWXToMSW(int wxk, bool *isVirtual)
             else
 #endif // !__WXWINCE__
             {
-                if ( isVirtual )
-                    *isVirtual = false;
                 vk = (WXWORD)wxk;
             }
     }