Author: hbelusca
Date: Sun Aug 31 14:01:21 2014
New Revision: 64010
URL: 
http://svn.reactos.org/svn/reactos?rev=64010&view=rev
Log:
[CONSRV]: Merge again ConDrvProcessKey and ConioProcessKey.
Modified:
    branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/input.c
Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/input.c
URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/input.c
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/input.c
[iso-8859-1] Sun Aug 31 14:01:21 2014
@@ -10,7 +10,6 @@
 /* INCLUDES *******************************************************************/
 #include "consrv.h"
-#include "include/conio.h"
 #include "include/term.h"
 #include "coninput.h"
@@ -19,77 +18,6 @@
 /* PRIVATE FUNCTIONS **********************************************************/
-
-static VOID
-ConDrvProcessKey(IN PCONSOLE Console,
-                 IN BOOLEAN Down,
-                 IN UINT VirtualKeyCode,
-                 IN UINT VirtualScanCode,
-                 IN WCHAR UnicodeChar,
-                 IN ULONG ShiftState,
-                 IN BYTE KeyStateCtrl)
-{
-    INPUT_RECORD er;
-
-    /* process Ctrl-C and Ctrl-Break */
-    if ( Console->InputBuffer.Mode & ENABLE_PROCESSED_INPUT &&
-         Down && (VirtualKeyCode == VK_PAUSE || VirtualKeyCode == 'C')
&&
-         (ShiftState & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED) || KeyStateCtrl &
0x80) )
-    {
-        DPRINT1("Console_Api Ctrl-C\n");
-        ConSrvConsoleProcessCtrlEvent(Console, 0, CTRL_C_EVENT);
-
-        if (Console->LineBuffer && !Console->LineComplete)
-        {
-            /* Line input is in progress; end it */
-            Console->LinePos = Console->LineSize = 0;
-            Console->LineComplete = TRUE;
-        }
-        return;
-    }
-
-    if ( (ShiftState & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED)) != 0 &&
-         (VK_UP == VirtualKeyCode || VK_DOWN == VirtualKeyCode) )
-    {
-        if (!Down) return;
-
-        /* scroll up or down */
-        if (VK_UP == VirtualKeyCode)
-        {
-            /* only scroll up if there is room to scroll up into */
-            if (Console->ActiveBuffer->CursorPosition.Y !=
Console->ActiveBuffer->ScreenBufferSize.Y - 1)
-            {
-                Console->ActiveBuffer->VirtualY =
(Console->ActiveBuffer->VirtualY +
-
Console->ActiveBuffer->ScreenBufferSize.Y - 1) %
-
Console->ActiveBuffer->ScreenBufferSize.Y;
-                Console->ActiveBuffer->CursorPosition.Y++;
-            }
-        }
-        else
-        {
-            /* only scroll down if there is room to scroll down into */
-            if (Console->ActiveBuffer->CursorPosition.Y != 0)
-            {
-                Console->ActiveBuffer->VirtualY =
(Console->ActiveBuffer->VirtualY + 1) %
-
Console->ActiveBuffer->ScreenBufferSize.Y;
-                Console->ActiveBuffer->CursorPosition.Y--;
-            }
-        }
-
-        ConioDrawConsole(Console);
-        return;
-    }
-
-    er.EventType                        = KEY_EVENT;
-    er.Event.KeyEvent.bKeyDown          = Down;
-    er.Event.KeyEvent.wRepeatCount      = 1;
-    er.Event.KeyEvent.wVirtualKeyCode   = VirtualKeyCode;
-    er.Event.KeyEvent.wVirtualScanCode  = VirtualScanCode;
-    er.Event.KeyEvent.uChar.UnicodeChar = UnicodeChar;
-    er.Event.KeyEvent.dwControlKeyState = ShiftState;
-
-    ConioProcessInputEvent(Console, &er);
-}
 static DWORD
 ConioGetShiftState(PBYTE KeyState, LPARAM lParam)
@@ -138,8 +66,10 @@
     UINT VirtualKeyCode;
     UINT VirtualScanCode;
     BOOL Down = FALSE;
-    BOOLEAN Fake;          // synthesized, not a real event
-    BOOLEAN NotChar;       // message should not be used to return a character
+    BOOLEAN Fake;          // Synthesized, not a real event
+    BOOLEAN NotChar;       // Message should not be used to return a character
+
+    INPUT_RECORD er;
     if (NULL == Console)
     {
@@ -172,7 +102,7 @@
                                2,
                                0,
                                NULL);
-        UnicodeChar = (1 == RetChars ? Chars[0] : 0);
+        UnicodeChar = (RetChars == 1 ? Chars[0] : 0);
     }
     Fake = UnicodeChar &&
@@ -194,14 +124,66 @@
     if (Fake) return;
+    /* Process Ctrl-C and Ctrl-Break */
+    if ( Console->InputBuffer.Mode & ENABLE_PROCESSED_INPUT &&
+         Down && (VirtualKeyCode == VK_PAUSE || VirtualKeyCode == 'C')
&&
+         (ShiftState & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED) ||
KeyState[VK_CONTROL] & 0x80) )
+    {
+        DPRINT1("Console_Api Ctrl-C\n");
+        ConSrvConsoleProcessCtrlEvent(Console, 0, CTRL_C_EVENT);
+
+        if (Console->LineBuffer && !Console->LineComplete)
+        {
+            /* Line input is in progress; end it */
+            Console->LinePos = Console->LineSize = 0;
+            Console->LineComplete = TRUE;
+        }
+        return;
+    }
+
+    if ( (ShiftState & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED)) != 0 &&
+         (VirtualKeyCode == VK_UP || VirtualKeyCode == VK_DOWN) )
+    {
+        if (!Down) return;
+
+        /* Scroll up or down */
+        if (VirtualKeyCode == VK_UP)
+        {
+            /* Only scroll up if there is room to scroll up into */
+            if (Console->ActiveBuffer->CursorPosition.Y !=
Console->ActiveBuffer->ScreenBufferSize.Y - 1)
+            {
+                Console->ActiveBuffer->VirtualY =
(Console->ActiveBuffer->VirtualY +
+
Console->ActiveBuffer->ScreenBufferSize.Y - 1) %
+
Console->ActiveBuffer->ScreenBufferSize.Y;
+                Console->ActiveBuffer->CursorPosition.Y++;
+            }
+        }
+        else
+        {
+            /* Only scroll down if there is room to scroll down into */
+            if (Console->ActiveBuffer->CursorPosition.Y != 0)
+            {
+                Console->ActiveBuffer->VirtualY =
(Console->ActiveBuffer->VirtualY + 1) %
+
Console->ActiveBuffer->ScreenBufferSize.Y;
+                Console->ActiveBuffer->CursorPosition.Y--;
+            }
+        }
+
+        ConioDrawConsole((PCONSOLE)Console);
+        return;
+    }
+
     /* Send the key press to the console driver */
-    ConDrvProcessKey(Console,
-                     Down,
-                     VirtualKeyCode,
-                     VirtualScanCode,
-                     UnicodeChar,
-                     ShiftState,
-                     KeyState[VK_CONTROL]);
+
+    er.EventType                        = KEY_EVENT;
+    er.Event.KeyEvent.bKeyDown          = Down;
+    er.Event.KeyEvent.wRepeatCount      = 1;
+    er.Event.KeyEvent.wVirtualKeyCode   = VirtualKeyCode;
+    er.Event.KeyEvent.wVirtualScanCode  = VirtualScanCode;
+    er.Event.KeyEvent.uChar.UnicodeChar = UnicodeChar;
+    er.Event.KeyEvent.dwControlKeyState = ShiftState;
+
+    ConioProcessInputEvent(Console, &er);
 }
 DWORD