- Changed the DWORDs in dobject.h into uint32s, since they were preventing
edit-and-continue from working for the Windows source files. - When a WM_KEYDOWN message is received with VK_PROCESSKEY, the scan key is now used to retrieve the real virtual key for the message. This fixes the previous issue that caused me to completely disable the IME. - Removed the code that disables the IME, since it also disables the ability to switch between keyboard layouts that do not use an IME. - TranslateMessage() is no longer called if GUI capture mode is off, so no dead key processing is performed until it might be useful. SVN r1758 (trunk)
This commit is contained in:
parent
63e26df7b2
commit
4d4e8e89b3
4 changed files with 35 additions and 27 deletions
|
|
@ -207,6 +207,12 @@ bool GUIWndProcHook(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESU
|
|||
if (GetKeyState(VK_SHIFT) & 0x8000) ev.data3 |= GKM_SHIFT;
|
||||
if (GetKeyState(VK_CONTROL) & 0x8000) ev.data3 |= GKM_CTRL;
|
||||
if (GetKeyState(VK_MENU) & 0x8000) ev.data3 |= GKM_ALT;
|
||||
if (wParam == VK_PROCESSKEY)
|
||||
{ // Use the scan code to determine the real virtual-key code.
|
||||
// ImmGetVirtualKey() will supposedly do this, but it just returns
|
||||
// VK_PROCESSKEY again.
|
||||
wParam = MapVirtualKey((lParam >> 16) & 255, 1);
|
||||
}
|
||||
if ( (ev.data1 = MapVirtualKey(wParam, 2)) )
|
||||
{
|
||||
D_PostEvent(&ev);
|
||||
|
|
@ -702,7 +708,10 @@ void I_GetEvent ()
|
|||
exit (mess.wParam);
|
||||
if (EAXEditWindow == 0 || !IsDialogMessage (EAXEditWindow, &mess))
|
||||
{
|
||||
TranslateMessage (&mess);
|
||||
if (GUICapture)
|
||||
{
|
||||
TranslateMessage (&mess);
|
||||
}
|
||||
DispatchMessage (&mess);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue