From 0dbbd8023730e9b98425c10c8d43687d52492f0a Mon Sep 17 00:00:00 2001 From: Royce Mitchell III Date: Tue, 13 Sep 2005 14:34:48 +0000 Subject: [PATCH] copy&paste enhancement patch by "brbak" (see bug 749) svn path=/trunk/; revision=17830 --- reactos/subsys/win32k/ntuser/input.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/reactos/subsys/win32k/ntuser/input.c b/reactos/subsys/win32k/ntuser/input.c index 05b2887a882..e1492a499d1 100644 --- a/reactos/subsys/win32k/ntuser/input.c +++ b/reactos/subsys/win32k/ntuser/input.c @@ -516,7 +516,7 @@ KeyboardThreadMain(PVOID StartContext) ModifierState |= fsModifiers; if (ModifierState == fsModifiers && - (fsModifiers == MOD_ALT || fsModifiers == MOD_WIN)) + (fsModifiers == MOD_ALT || fsModifiers == MOD_WIN || fsModifiers == MOD_CONTROL)) { /* First send out special notifications * (For alt, the message that turns on accelerator @@ -637,7 +637,29 @@ KeyboardThreadMain(PVOID StartContext) else msg.message = WM_SYSKEYUP; } - else + else if (ModifierState & MOD_CONTROL) + { + if(NextKeyInput.MakeCode == 0x2E)/* Ctrl-C */ + { + DPRINT1("Ctrl-C pressed\n"); + co_MsqPostKeyboardMessage(WM_COPY,0,0); + continue; + } + else if(NextKeyInput.MakeCode == 0x2F) /* Ctrl-V */ + { + DPRINT1("Ctrl-V pressed\n"); + co_MsqPostKeyboardMessage(WM_PASTE,0,0); + continue; + } + else + { + DPRINT1("Ctrl with unknown combination %04x\n",NextKeyInput.MakeCode); + if (!(KeyInput.Flags & KEY_BREAK)) + msg.message = WM_KEYDOWN; + else + msg.message = WM_KEYUP; + } + }else { if (!(KeyInput.Flags & KEY_BREAK)) msg.message = WM_KEYDOWN;