[ConSrv]
authorJames Tabor <james.tabor@reactos.org>
Sat, 17 May 2014 02:15:50 +0000 (02:15 +0000)
committerJames Tabor <james.tabor@reactos.org>
Sat, 17 May 2014 02:15:50 +0000 (02:15 +0000)
- Move Alt-Escape, Space and Tab to ConWndProc, disable GuiProcessKeyCallback.
- Alt-Space was not getting launched out of GuiProcessKeyCallback. The key needed translated.
- Reduce code for system menus.

svn path=/trunk/; revision=63319

reactos/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c
reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c

index a8c744a..f660e34 100644 (file)
@@ -255,7 +255,7 @@ CreateSysMenu(HWND hWnd)
 {
     MENUITEMINFOW mii;
     WCHAR szMenuStringBack[255];
-    const WCHAR *ptrTab;
+    WCHAR *ptrTab;
     HMENU hMenu = GetSystemMenu(hWnd, FALSE);
     if (hMenu != NULL)
     {
@@ -269,9 +269,7 @@ CreateSysMenu(HWND hWnd)
         ptrTab = wcschr(szMenuStringBack, '\t');
         if (ptrTab)
         {
-           mii.cch = (int)( ptrTab - szMenuStringBack);
-           RtlZeroMemory((PVOID)ptrTab, mii.cch);
-
+           *ptrTab = '\0';
            mii.cch = wcslen(szMenuStringBack);
 
            SetMenuItemInfoW(hMenu, SC_CLOSE, FALSE, &mii);
@@ -1927,6 +1925,11 @@ ConWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
                 break;
             }
+            /* Detect Alt-Esc/Space/Tab presses defer to DefWindowProc */
+            if ( (HIWORD(lParam) & KF_ALTDOWN) && (wParam == VK_ESCAPE || wParam == VK_SPACE || wParam == VK_TAB))
+            {
+               return DefWindowProcW(hWnd, msg, wParam, lParam);
+            }
 
             OnKey(GuiData, msg, wParam, lParam);
             break;
index a38875d..e56e4c5 100644 (file)
@@ -806,8 +806,9 @@ GuiProcessKeyCallback(IN OUT PFRONTEND This,
     if ((ShiftState & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED) || KeyStateMenu & 0x80) &&
         (VirtualKeyCode == VK_ESCAPE || VirtualKeyCode == VK_TAB || VirtualKeyCode == VK_SPACE))
     {
-        DefWindowProcW(msg->hwnd, msg->message, msg->wParam, msg->lParam);
-        return TRUE;
+        DPRINT1("GuiProcessKeyCallback\n");
+        //DefWindowProcW(msg->hwnd, msg->message, msg->wParam, msg->lParam);
+        //return TRUE;
     }
 
     return FALSE;