OSDN Git Service

CXkeymacsDll::IsDown uses GetAsyncKeyState instead of GetKeyState
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Tue, 10 May 2011 05:34:59 +0000 (14:34 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Fri, 10 Jun 2011 08:06:54 +0000 (17:06 +0900)
when bPhysicalKey is TRUE.

xkeymacsdll/Commands.cpp
xkeymacsdll/xkeymacsdll.cpp

index 45cb2ec..35edd56 100644 (file)
@@ -317,9 +317,9 @@ void CCommands::ReleaseKey(BYTE bVk)
 \r
 void CCommands::Kdu(BYTE bVk1, BYTE bVk2, BYTE bVk3, BYTE bVk4)\r
 {\r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
 \r
        if (CXkeymacsDll::Get326Compatible() || CUtils::IsAtok()) {\r
                bIsShiftDown = FALSE;\r
@@ -365,9 +365,9 @@ void CCommands::Kdu(BYTE bVk1, BYTE bVk2, BYTE bVk3, BYTE bVk4)
 \r
 void CCommands::SdKduSu(BYTE bVk1, BYTE bVk2, BYTE bVk3, BYTE bVk4)\r
 {\r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
 \r
        if (bIsCtrlDown) {\r
                ReleaseKey(VK_CONTROL);\r
@@ -415,12 +415,10 @@ void CCommands::Su()
 \r
 void CCommands::CdKduCu(BYTE bVk1, BYTE bVk2)\r
 {\r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
-//     if (!bVk1) {\r
-//             CUtils::Log("%d, %d, %d", CXkeymacsDll::IsDown(VK_MENU, FALSE), CXkeymacsDll::IsDown(VK_LMENU, FALSE), CXkeymacsDll::IsDown(VK_RMENU, FALSE));\r
-//     }\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
+\r
        if (!bIsCtrlDown) {\r
                DepressKey(VK_CONTROL);\r
                CUtils::UpdateKeyboardState(VK_CONTROL, 1);\r
@@ -453,9 +451,9 @@ void CCommands::CdKduCu(BYTE bVk1, BYTE bVk2)
 \r
 void CCommands::CdSdKduSuCu(BYTE bVk)\r
 {\r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
 \r
        if (!bIsCtrlDown) {\r
                DepressKey(VK_CONTROL);\r
@@ -484,9 +482,9 @@ void CCommands::CdSdKduSuCu(BYTE bVk)
 \r
 void CCommands::AdKduAu(BYTE bVk1, BYTE bVk2, BYTE bVk3)\r
 {\r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
 \r
        if (bIsCtrlDown) {\r
                ReleaseKey(VK_CONTROL);\r
@@ -523,9 +521,9 @@ void CCommands::AdKduAu(BYTE bVk1, BYTE bVk2, BYTE bVk3)
 \r
 void CCommands::AdSdKduSuAu(BYTE bVk1)\r
 {\r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
 \r
        if (bIsCtrlDown) {\r
                ReleaseKey(VK_CONTROL);\r
@@ -1137,9 +1135,9 @@ int CCommands::Undo()
                static BOOL bIsAltDown;\r
                static BOOL bIsShiftDown;\r
 \r
-               bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-               bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-               bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
+               bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+               bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+               bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
 \r
                if (!bIsCtrlDown) {\r
                        DepressKey(VK_CONTROL);\r
@@ -1462,7 +1460,7 @@ DWORD CCommands::DeactivateMark()
                return ERROR_SUCCESS;   // i.e. return 0;\r
        }\r
        if (CUtils::IsVisualStudio()) { // Ctrl + Click select a word on Visual Studio .NET\r
-               BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
+               BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
                if (bIsCtrlDown)\r
                        ReleaseKey(VK_CONTROL);\r
                DWORD res = ClickCaret();\r
@@ -3052,8 +3050,8 @@ int CCommands::CallLastKbdMacro()
 \r
 int CCommands::SwitchBetweenInputLocales()\r
 {\r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
 \r
        // Alt+Shift\r
        if (bIsCtrlDown) {\r
@@ -3343,9 +3341,9 @@ GOTO CCommands::MoveCaret(BYTE bVk, BOOL bCtrl)
                                switch (nStep) {\r
                                case 0:\r
                                        {\r
-                                               BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
-                                               BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
-                                               bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
+                                               BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
+                                               BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
+                                               bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
 \r
                                                if (bIsCtrlDown) {\r
                                                        ReleaseKey(VK_CONTROL);\r
index 36dbb97..440a008 100644 (file)
@@ -603,14 +603,9 @@ LRESULT CALLBACK CXkeymacsDll::ShellProc(int nCode, WPARAM wParam, LPARAM lParam
        return CallNextHookEx( m_hHookShell, nCode, wParam, lParam );\r
 }\r
 \r
-// return true if the key is down\r
 BOOL CXkeymacsDll::IsDown(BYTE bVk, BOOL bPhysicalKey)\r
 {\r
-       if (bPhysicalKey) {\r
-               return GetKeyState(bVk) < 0;\r
-       } else {\r
-               return GetAsyncKeyState(bVk) < 0;\r
-       }\r
+       return bPhysicalKey ? GetAsyncKeyState(bVk) < 0 : GetKeyState(bVk) < 0;\r
 }\r
 \r
 // Do keybd_event\r
@@ -637,7 +632,7 @@ void CXkeymacsDll::DoKeybd_event(BYTE bVk, DWORD dwFlags)
                }\r
                break;\r
        case VK_PAUSE:\r
-               if (IsDown(VK_CONTROL)) // Break\r
+               if (IsDown(VK_CONTROL, FALSE)) // Break\r
                        dwFlags |= KEYEVENTF_EXTENDEDKEY;\r
                break;\r
        case VK_INSERT:\r
@@ -669,10 +664,10 @@ void CXkeymacsDll::DepressKey(BYTE bVk, BOOL bOriginal)   // bVk is virtual-key co
 //                     IsDown(VK_MENU), IsDown(VK_MENU, FALSE), IsDepressedModifier(CCommands::MetaAlt), IsDepressedModifier(CCommands::MetaAlt, FALSE));\r
 \r
                int nCommandType = NONE;\r
-               if (IsDown(VK_CONTROL, FALSE)) {\r
+               if (IsDown(VK_CONTROL)) {\r
                        nCommandType |= CONTROL;\r
                }\r
-               if (IsDown(VK_MENU, FALSE)) {\r
+               if (IsDown(VK_MENU)) {\r
                        nCommandType |= META;\r
                }\r
                Original(nCommandType, bVk, 1);\r
@@ -941,16 +936,12 @@ LRESULT CALLBACK CXkeymacsDll::KeyboardProc(int nCode, WPARAM wParam, LPARAM lPa
        }\r
 \r
        {\r
-//             CUtils::Log(_T("o: %x, %d, %d, %d, %d, %d, %d, %d, %d"), (BYTE)wParam,\r
-//                     IsDown(VK_CONTROL), IsDown(VK_CONTROL, FALSE), IsDepressedModifier(CCommands::C_), IsDepressedModifier(CCommands::C_, FALSE),\r
-//                     IsDown(VK_MENU), IsDown(VK_MENU, FALSE), IsDepressedModifier(CCommands::MetaAlt), IsDepressedModifier(CCommands::MetaAlt, FALSE));\r
-\r
                BYTE nKey = (BYTE)wParam; // VK_CONTROL is needed instead of VK_RCONTROL and VK_LCONTROL in this block just for Original()\r
                int nVirtualCommandType = NONE;\r
-               if (IsDown(VK_CONTROL) && nKey != VK_CONTROL) {\r
+               if (IsDown(VK_CONTROL, FALSE) && nKey != VK_CONTROL) {\r
                        nVirtualCommandType |= CONTROL;\r
                }\r
-               if (IsDown(VK_MENU) && nKey != VK_MENU) {\r
+               if (IsDown(VK_MENU, FALSE) && nKey != VK_MENU) {\r
                        nVirtualCommandType |= META;\r
                }\r
                if (Original(nVirtualCommandType, nKey)) {\r
@@ -1028,7 +1019,7 @@ LRESULT CALLBACK CXkeymacsDll::KeyboardProc(int nCode, WPARAM wParam, LPARAM lPa
                        memset(szPath, 0, sizeof(szPath));\r
                        goto HOOK;\r
                } else if (index < MAX_PATH - 1) {\r
-                       const BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
+                       const BOOL bIsShiftDown = IsDown(VK_SHIFT, FALSE);\r
                        for (TCHAR nAscii = 1; nAscii != 0; ++nAscii) { // repeat until overflow\r
                                if (nKey != 0 && a2v(nAscii) == nKey && bIsShiftDown == IsShift(nAscii)) {\r
 //                                     CUtils::Log("M-x: %#X (%c), %#X (%c)", nKey, nKey, nAscii, nAscii);\r
@@ -1164,9 +1155,9 @@ LRESULT CALLBACK CXkeymacsDll::KeyboardProc(int nCode, WPARAM wParam, LPARAM lPa
                }\r
        }\r
 \r
-       m_bRightControl = IsDown(VK_RCONTROL);\r
-       m_bRightAlt             = IsDown(VK_RMENU);\r
-       m_bRightShift   = IsDown(VK_RSHIFT);\r
+       m_bRightControl = IsDown(VK_RCONTROL, FALSE);\r
+       m_bRightAlt = IsDown(VK_RMENU, FALSE);\r
+       m_bRightShift = IsDown(VK_RSHIFT, FALSE);\r
 \r
        if (!bLocked) {\r
                bLocked = TRUE;\r
@@ -1257,9 +1248,9 @@ void CXkeymacsDll::SetModifierIcons()
                {MX_ICON, IconState(CCommands::bM_x()), ""},\r
                {CX_ICON, IconState(CCommands::bC_x()), ""},\r
                {META_ICON, IconState(CCommands::bM_()), ""},\r
-               {SHIFT_ICON, IconState(IsDown(VK_SHIFT)), ""},\r
+               {SHIFT_ICON, IconState(IsDown(VK_SHIFT, FALSE)), ""},\r
                {CTRL_ICON, IconState(IsControl()), ""},\r
-               {ALT_ICON, IconState(IsDown(VK_MENU)), ""}\r
+               {ALT_ICON, IconState(IsDown(VK_MENU, FALSE)), ""}\r
        };\r
        _tcscpy_s(msg[0].szTip, m_M_xTip);\r
        SendIconMessage(msg, 6);\r
@@ -1334,11 +1325,9 @@ BOOL CXkeymacsDll::IsDepressedModifier(int (__cdecl *Modifier)(void), BOOL bPhys
 {\r
        BYTE bVk = 0;\r
        do {\r
-               if (IsValidKey(bVk)\r
-                && IsDown(bVk, bPhysicalKey)\r
-                && Commands[m_Config.nCommandID[m_nApplicationID][NONE][bVk]].fCommand == Modifier) {\r
+               if (IsValidKey(bVk) && IsDown(bVk, bPhysicalKey) &&\r
+                               Commands[m_Config.nCommandID[m_nApplicationID][NONE][bVk]].fCommand == Modifier)\r
                        return TRUE;\r
-               }\r
        } while (++bVk);\r
        return FALSE;\r
 }\r
@@ -1359,7 +1348,7 @@ BOOL CXkeymacsDll::IsDepressedShiftKeyOnly(BYTE nKey)
                        continue;\r
                }\r
 \r
-               if (IsDown(bVk)) {\r
+               if (IsDown(bVk, FALSE)) {\r
                        return FALSE;\r
                }\r
        } while (++bVk);\r
@@ -1368,12 +1357,12 @@ BOOL CXkeymacsDll::IsDepressedShiftKeyOnly(BYTE nKey)
 \r
 BOOL CXkeymacsDll::IsControl()\r
 {\r
-       return CCommands::bC_() || IsDepressedModifier(CCommands::C_, FALSE);\r
+       return CCommands::bC_() || IsDepressedModifier(CCommands::C_);\r
 }\r
 \r
 BOOL CXkeymacsDll::IsMeta()\r
 {\r
-       return CCommands::bM_() || IsDepressedModifier(CCommands::MetaAlt, FALSE);\r
+       return CCommands::bM_() || IsDepressedModifier(CCommands::MetaAlt);\r
 }\r
 \r
 void CXkeymacsDll::AddKillRing(BOOL bNewData)\r
@@ -1615,15 +1604,15 @@ BOOL CXkeymacsDll::DefiningMacro()
 /**/ \r
 void CXkeymacsDll::CallMacro()\r
 {\r
-       BOOL bIsCtrlDown = IsDown(VK_CONTROL);\r
+       BOOL bIsCtrlDown = IsDown(VK_CONTROL, FALSE);\r
        if (bIsCtrlDown) {\r
                ReleaseKey(VK_CONTROL);\r
        }\r
-       BOOL bIsAltDown = IsDown(VK_MENU);\r
+       BOOL bIsAltDown = IsDown(VK_MENU, FALSE);\r
        if (bIsAltDown) {\r
                ReleaseKey(VK_MENU);\r
        }\r
-       BOOL bIsShiftDown = IsDown(VK_SHIFT);\r
+       BOOL bIsShiftDown = IsDown(VK_SHIFT, FALSE);\r
        if (bIsShiftDown) {\r
                ReleaseKey(VK_SHIFT);\r
        }\r
@@ -1738,9 +1727,9 @@ void CXkeymacsDll::CallFunction(int nFunctionID)
                return;\r
        }\r
 \r
-       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL);\r
-       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
-       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
+       BOOL bIsCtrlDown = CXkeymacsDll::IsDown(VK_CONTROL, FALSE);\r
+       BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU, FALSE);\r
+       BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT, FALSE);\r
 \r
        if (m_Config.szFunctionDefinition[nFunctionID][0] == _T('"') && m_Config.szFunctionDefinition[nFunctionID][_tcslen(m_Config.szFunctionDefinition[nFunctionID]) - 1] == _T('"')) {\r
                for (unsigned int i = 1; i < _tcslen(m_Config.szFunctionDefinition[nFunctionID]) - 1; ++i) {    // skip '"'\r