mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-04-01 12:50:33 +02:00
Windows: cefclient: Map Shift+Ctrl+Alt to Shift+AltGr for OSR (see issue #3026)
This commit is contained in:
parent
2be59f6edd
commit
1ffa5528b3
@ -801,10 +801,12 @@ void OsrWindowWin::OnKeyEvent(UINT message, WPARAM wParam, LPARAM lParam) {
|
|||||||
// https://docs.microsoft.com/en-gb/windows/win32/api/winuser/nf-winuser-vkkeyscanexw
|
// https://docs.microsoft.com/en-gb/windows/win32/api/winuser/nf-winuser-vkkeyscanexw
|
||||||
// ... high-order byte contains the shift state,
|
// ... high-order byte contains the shift state,
|
||||||
// which can be a combination of the following flag bits.
|
// which can be a combination of the following flag bits.
|
||||||
|
// 1 Either SHIFT key is pressed.
|
||||||
// 2 Either CTRL key is pressed.
|
// 2 Either CTRL key is pressed.
|
||||||
// 4 Either ALT key is pressed.
|
// 4 Either ALT key is pressed.
|
||||||
SHORT scan_res = ::VkKeyScanExW(wParam, current_layout);
|
SHORT scan_res = ::VkKeyScanExW(wParam, current_layout);
|
||||||
if (((scan_res >> 8) & 0xFF) == (2 | 4)) { // ctrl-alt pressed
|
constexpr auto ctrlAlt = (2 | 4);
|
||||||
|
if (((scan_res >> 8) & ctrlAlt) == ctrlAlt) { // ctrl-alt pressed
|
||||||
event.modifiers &= ~(EVENTFLAG_CONTROL_DOWN | EVENTFLAG_ALT_DOWN);
|
event.modifiers &= ~(EVENTFLAG_CONTROL_DOWN | EVENTFLAG_ALT_DOWN);
|
||||||
event.modifiers |= EVENTFLAG_ALTGR_DOWN;
|
event.modifiers |= EVENTFLAG_ALTGR_DOWN;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user