fix F10 hotkey on Windows
This commit is contained in:
parent
6db87aa78b
commit
dc08ba2e17
|
@ -416,11 +416,12 @@ void WIN32Window::poll()
|
|||
|
||||
Fw::Key WIN32Window::retranslateVirtualKey(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if(!(((HIWORD(lParam) >> 8) & 0xFF) & 1)) {
|
||||
// ignore numpad keys when numlock is on
|
||||
if((wParam >= VK_NUMPAD0 && wParam <= VK_NUMPAD9) || wParam == VK_SEPARATOR)
|
||||
return Fw::KeyUnknown;
|
||||
// ignore numpad keys when numlock is on
|
||||
if((wParam >= VK_NUMPAD0 && wParam <= VK_NUMPAD9) || wParam == VK_SEPARATOR)
|
||||
return Fw::KeyUnknown;
|
||||
|
||||
// lParam will have this state when receiving insert,end,down,etc presses from numpad
|
||||
if(!(((HIWORD(lParam) >> 8) & 0xFF) & 1)) {
|
||||
// retranslate numpad keys
|
||||
switch(wParam) {
|
||||
case VK_INSERT:
|
||||
|
@ -475,7 +476,7 @@ LRESULT WIN32Window::windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
if(m_cursor)
|
||||
SetCursor(m_cursor);
|
||||
else
|
||||
DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||
break;
|
||||
}
|
||||
case WM_ACTIVATE: {
|
||||
|
@ -503,6 +504,19 @@ LRESULT WIN32Window::windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
processKeyUp(retranslateVirtualKey(wParam, lParam));
|
||||
break;
|
||||
}
|
||||
case WM_SYSKEYUP:
|
||||
case WM_SYSKEYDOWN: {
|
||||
// F10 is the shortcut key to enter a windows menu, this is a workaround to get F10 working
|
||||
if(wParam != VK_F10)
|
||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||
else {
|
||||
if(uMsg == WM_SYSKEYUP)
|
||||
processKeyUp(retranslateVirtualKey(wParam, lParam));
|
||||
else
|
||||
processKeyDown(retranslateVirtualKey(wParam, lParam));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case WM_LBUTTONDOWN: {
|
||||
SetCapture(m_window);
|
||||
m_inputEvent.reset(Fw::MousePressInputEvent);
|
||||
|
|
Loading…
Reference in New Issue