mirror of https://github.com/OpenTTD/OpenTTD
(svn r25680) -Codechange: [Win32] Cancel the current IME composition when the input focus changes.
parent
7422120014
commit
21126aec62
|
@ -524,7 +524,20 @@ static LRESULT HandleIMEComposition(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
return lParam != 0 ? DefWindowProc(hwnd, WM_IME_COMPOSITION, wParam, lParam) : 0;
|
return lParam != 0 ? DefWindowProc(hwnd, WM_IME_COMPOSITION, wParam, lParam) : 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
/** Clear the current composition string. */
|
||||||
|
static void CancelIMEComposition(HWND hwnd)
|
||||||
|
{
|
||||||
|
HIMC hIMC = ImmGetContext(hwnd);
|
||||||
|
if (hIMC != NULL) ImmNotifyIME(hIMC, NI_COMPOSITIONSTR, CPS_CANCEL, 0);
|
||||||
|
ImmReleaseContext(hwnd, hIMC);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
static void CancelIMEComposition(HWND hwnd) {}
|
||||||
|
|
||||||
|
#endif /* !defined(WINCE) || _WIN32_WCE >= 0x400 */
|
||||||
|
|
||||||
static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
|
@ -1203,3 +1216,8 @@ bool VideoDriver_Win32::AfterBlitterChange()
|
||||||
{
|
{
|
||||||
return AllocateDibSection(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen);
|
return AllocateDibSection(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VideoDriver_Win32::EditBoxLostFocus()
|
||||||
|
{
|
||||||
|
CancelIMEComposition(_wnd.main_wnd);
|
||||||
|
}
|
||||||
|
|
|
@ -33,6 +33,8 @@ public:
|
||||||
|
|
||||||
/* virtual */ bool ClaimMousePointer();
|
/* virtual */ bool ClaimMousePointer();
|
||||||
|
|
||||||
|
/* virtual */ void EditBoxLostFocus();
|
||||||
|
|
||||||
/* virtual */ const char *GetName() const { return "win32"; }
|
/* virtual */ const char *GetName() const { return "win32"; }
|
||||||
|
|
||||||
bool MakeWindow(bool full_screen);
|
bool MakeWindow(bool full_screen);
|
||||||
|
|
Loading…
Reference in New Issue