X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1044a386f0521b9b805b142547783acb96d1a406..d80207c3445ece64793fc499818d4c7a3584e01f:/src/msw/accel.cpp diff --git a/src/msw/accel.cpp b/src/msw/accel.cpp index c31731046f..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; @@ -164,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); }