X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c50f1fb9226d9260454ccb9c8a67d0be23c2827f..dd107c50be43e8d4dbdba20df162faf119a3781c:/src/msw/accel.cpp

diff --git a/src/msw/accel.cpp b/src/msw/accel.cpp
index 1a2c5d78af..0e86f39c36 100644
--- a/src/msw/accel.cpp
+++ b/src/msw/accel.cpp
@@ -30,9 +30,7 @@
 
 #include "wx/msw/private.h"
 
-#if !USE_SHARED_LIBRARIES
 IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject)
-#endif
 
 class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData
 {
@@ -110,15 +108,25 @@ wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]
     {
         BYTE fVirt = 0;
         if (entries[i].m_flags & wxACCEL_ALT)
+        {
             fVirt |= FALT;
+            fVirt |= FVIRTKEY;
+        }
         if (entries[i].m_flags & wxACCEL_SHIFT)
+        {
             fVirt |= FSHIFT;
+            fVirt |= FVIRTKEY;
+        }
         if (entries[i].m_flags & wxACCEL_CTRL)
+        {
             fVirt |= FCONTROL;
+            fVirt |= FVIRTKEY;
+        }
 
         bool isVirtual;
         WORD key = wxCharCodeWXToMSW(entries[i].m_keyCode, & isVirtual);
-        fVirt |= FVIRTKEY;
+        if (isVirtual)
+            fVirt |= FVIRTKEY;
 
         WORD cmd = entries[i].m_command;
 
@@ -135,7 +143,9 @@ wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]
 #else // Win16
 wxAcceleratorTable::wxAcceleratorTable(int WXUNUSED(n), const wxAcceleratorEntry WXUNUSED(entries)[])
 {
-    wxFAIL_MSG("not implemented");
+    // No, we simply gracefully degrade; we don't expect the
+    // developer to pepper their code with #ifdefs just for this.
+    // wxFAIL_MSG("not implemented");
 }
 #endif // Win32/16
 
@@ -162,5 +172,6 @@ WXHACCEL wxAcceleratorTable::GetHACCEL() const
 bool wxAcceleratorTable::Translate(wxWindow *window, WXMSG *wxmsg) const
 {
     MSG *msg = (MSG *)wxmsg;
+    return Ok() && ::TranslateAccelerator(GetHwndOf(window), GetHaccel(), msg);
+}
 
-    return Ok() && ::TranslateAccelerator(GetHwndOf(window), GetHaccel(), msg); }