copy&paste enhancement patch by "brbak" (see bug 749) Modified: trunk/reactos/subsys/win32k/ntuser/input.c _____
Modified: trunk/reactos/subsys/win32k/ntuser/input.c --- trunk/reactos/subsys/win32k/ntuser/input.c 2005-09-13 11:57:50 UTC (rev 17829) +++ trunk/reactos/subsys/win32k/ntuser/input.c 2005-09-13 14:34:48 UTC (rev 17830) @@ -516,7 +516,7 @@
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 @@ 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;