\r
void AppName::SetIMEState(bool on)\r
{\r
+ AppName::Init();\r
m_IMEState = on;\r
if (!on)\r
return;\r
_tcscpy_s(m_IMEName, m_FallbackIMEName);\r
}\r
\r
+bool AppName::GetIMEState()\r
+{\r
+ return m_IMEState;\r
+}\r
+\r
// The code starting here is derived from work by co <cogood\81\97gmail.com>.\r
void AppName::CorrectAppName(TCHAR (&text)[WINDOW_TEXT_LENGTH], TCHAR (&appName)[CLASS_NAME_LENGTH])\r
{\r
_T("syswow64\\cmd.exe")\r
};\r
for (int i = 0; i < _countof(prompts); ++i)\r
- if (text.Right(_tcslen(prompts[i])).CompareNoCase(prompts[i]) == 0)\r
+ if (text.Right(static_cast<int>(_tcslen(prompts[i]))).CompareNoCase(prompts[i]) == 0)\r
return true;\r
return false;\r
}\r
const CWPSTRUCT *cwps = reinterpret_cast<CWPSTRUCT *>(lParam);\r
switch (cwps->message) {\r
case WM_IME_STARTCOMPOSITION:\r
- InitKeyboardProc(true);\r
+ AppName::SetIMEState(true);\r
+ InitKeyboardProc();\r
break;\r
case WM_IME_ENDCOMPOSITION:\r
- InitKeyboardProc(false);\r
+ AppName::SetIMEState(false);\r
+ InitKeyboardProc();\r
break;\r
case WM_SETFOCUS:\r
if (cwps->hwnd == GetForegroundWindow()) {\r
- InitKeyboardProc(false);\r
+ AppName::SetIMEState(false);\r
+ InitKeyboardProc();\r
ShowKeyboardHookState();\r
}\r
break;\r
case WM_NCACTIVATE:\r
if (cwps->wParam && cwps->hwnd == GetForegroundWindow()) {\r
- InitKeyboardProc(false);\r
+ AppName::SetIMEState(false);\r
+ InitKeyboardProc();\r
ShowKeyboardHookState();\r
}\r
break;\r
switch (cwprets->message) {\r
case WM_SETTEXT:\r
if (cwprets->hwnd == GetForegroundWindow())\r
- InitKeyboardProc(false);\r
+ InitKeyboardProc();\r
break;\r
case WM_SETCURSOR:\r
DoSetCursor();\r
const MSG *msg = reinterpret_cast<MSG *>(lParam);\r
switch (msg->message) {\r
case WM_IME_STARTCOMPOSITION:\r
- InitKeyboardProc(true);\r
+ AppName::SetIMEState(true);\r
+ InitKeyboardProc();\r
break;\r
case WM_IME_ENDCOMPOSITION:\r
- InitKeyboardProc(false);\r
+ AppName::SetIMEState(false);\r
+ InitKeyboardProc();\r
break;\r
}\r
}\r
TCHAR className[CLASS_NAME_LENGTH];\r
GetClassName(reinterpret_cast<HWND>(wParam), className, CLASS_NAME_LENGTH);\r
if (!_tcsicmp(className, _T("ConsoleWindowClass"))) {\r
- InitKeyboardProc(false);\r
+ AppName::SetIMEState(false);\r
+ InitKeyboardProc();\r
ShowKeyboardHookState();\r
}\r
}\r
return CallNextHookEx(NULL, nCode, wParam, lParam);\r
}\r
\r
-void CXkeymacsDll::InitKeyboardProc(bool imeState)\r
+void CXkeymacsDll::InitKeyboardProc()\r
{\r
AppName::Init();\r
- AppName::SetIMEState(imeState);\r
-\r
if (m_CurrentConfig == NULL ||\r
_tcsnicmp(m_CurrentConfig->AppName, AppName::GetAppName(), 0xF) || // PROCESSENTRY32 has only 0xF bytes of Name\r
!CUtils::IsMatchWindowText(m_CurrentConfig->WindowText)) {\r
}\r
if (m_CurrentConfig->SettingStyle != SETTING_DISABLE &&\r
(_tcsicmp(m_CurrentConfig->AppName, _T("Default")) || !CUtils::IsDefaultIgnoreApplication()) &&\r
- !imeState && CUtils::IsDialog() && m_CurrentConfig->UseDialogSetting)\r
+ !AppName::GetIMEState() && CUtils::IsDialog() && m_CurrentConfig->UseDialogSetting)\r
// Use Dialog Setting\r
m_CurrentConfig = GetAppConfig(_T("Dialog"), m_CurrentConfig);\r
m_CmdID = m_CurrentConfig->CmdID;\r
static LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam);\r
static LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam);\r
static LRESULT CALLBACK ShellProc(int nCode, WPARAM wParam, LPARAM lParam);\r
- static void InitKeyboardProc(bool imeState);\r
+ static void InitKeyboardProc();\r
static AppConfig* GetAppConfig(LPCTSTR szName, AppConfig* fallback);\r
static BOOL m_bRightShift;\r
static BOOL m_bRightControl;\r