mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-17 12:12:10 -04:00
fix Alt key handling
This commit is contained in:
parent
2466d2dfae
commit
e4a2016a21
@ -492,18 +492,22 @@ window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_SYSKEYDOWN:
|
||||
// want to use defwindproc on Alt syskey so Alt-F4 works, etc
|
||||
// but do want to bypass defwindproc F10 behavior (it activates
|
||||
// the main menu, but we have none)
|
||||
case WM_SYSKEYDOWN: {
|
||||
// Alt and F10 are sent as WM_SYSKEYDOWN instead of WM_KEYDOWN
|
||||
// want to use defwindproc on Alt syskey so std windows cmd Alt-F4 works, etc
|
||||
POINT point;
|
||||
GetCursorPos(&point);
|
||||
ScreenToClient(hwnd, &point);
|
||||
handle_keypress(lookup_key(wparam), point.x, point.y);
|
||||
if (wparam == VK_F10) {
|
||||
//bypass default windproc F10 behavior (it activates the main menu, but we have none)
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_KEYDOWN: {
|
||||
POINT point;
|
||||
|
||||
GetCursorPos(&point);
|
||||
ScreenToClient(hwnd, &point);
|
||||
handle_keypress(lookup_key(wparam), point.x, point.y);
|
||||
@ -2684,8 +2688,9 @@ lookup_key(WPARAM wparam) const {
|
||||
|
||||
case VK_MENU:
|
||||
case VK_LMENU:
|
||||
case VK_RMENU:
|
||||
case VK_RMENU: {
|
||||
return KeyboardButton::alt();
|
||||
}
|
||||
|
||||
default:
|
||||
int key = MapVirtualKey(wparam, 2);
|
||||
|
@ -492,14 +492,19 @@ window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_SYSKEYDOWN:
|
||||
// want to use defwindproc on Alt syskey so Alt-F4 works, etc
|
||||
// but do want to bypass defwindproc F10 behavior (it activates
|
||||
// the main menu, but we have none)
|
||||
case WM_SYSKEYDOWN: {
|
||||
// Alt and F10 are sent as WM_SYSKEYDOWN instead of WM_KEYDOWN
|
||||
// want to use defwindproc on Alt syskey so std windows cmd Alt-F4 works, etc
|
||||
POINT point;
|
||||
GetCursorPos(&point);
|
||||
ScreenToClient(hwnd, &point);
|
||||
handle_keypress(lookup_key(wparam), point.x, point.y);
|
||||
if (wparam == VK_F10) {
|
||||
//bypass default windproc F10 behavior (it activates the main menu, but we have none)
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_KEYDOWN: {
|
||||
POINT point;
|
||||
|
@ -1799,14 +1799,19 @@ window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_SYSKEYDOWN:
|
||||
// want to use defwindproc on Alt syskey so Alt-F4 works, etc
|
||||
// but do want to bypass defwindproc F10 behavior (it activates
|
||||
// the main menu, but we have none)
|
||||
if (wparam == VK_F10) {
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case WM_SYSKEYDOWN: {
|
||||
// Alt and F10 are sent as WM_SYSKEYDOWN instead of WM_KEYDOWN
|
||||
// want to use defwindproc on Alt syskey so std windows cmd Alt-F4 works, etc
|
||||
POINT point;
|
||||
GetCursorPos(&point);
|
||||
ScreenToClient(hwnd, &point);
|
||||
handle_keypress(lookup_key(wparam), point.x, point.y);
|
||||
if (wparam == VK_F10) {
|
||||
//bypass default windproc F10 behavior (it activates the main menu, but we have none)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_KEYDOWN: {
|
||||
POINT point;
|
||||
|
Loading…
x
Reference in New Issue
Block a user