richedit: Typing is ignored while mouse is captured.

I noticed a while ago that on Windows XP richedit controls ignored
characters typed while the mouse is captured (e.g. from holding the left
or middle button down).  Arrow keys, delete, and backspace, copying,
cutting, pasting, and everything else handled on WM_CHAR and WM_KEYDOWN
messages are also ignored.
This commit is contained in:
Dylan Smith 2009-01-21 10:10:04 -05:00 committed by Alexandre Julliard
parent 9b7825f6f6
commit a6c7b6fdb2
1 changed files with 5 additions and 0 deletions

View File

@ -2155,6 +2155,8 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
BOOL ctrl_is_down = GetKeyState(VK_CONTROL) & 0x8000; BOOL ctrl_is_down = GetKeyState(VK_CONTROL) & 0x8000;
BOOL shift_is_down = GetKeyState(VK_SHIFT) & 0x8000; BOOL shift_is_down = GetKeyState(VK_SHIFT) & 0x8000;
if (editor->bMouseCaptured)
return FALSE;
if (nKey != VK_SHIFT && nKey != VK_CONTROL && nKey != VK_MENU) if (nKey != VK_SHIFT && nKey != VK_CONTROL && nKey != VK_MENU)
editor->nSelectionType = stPosition; editor->nSelectionType = stPosition;
@ -2400,6 +2402,9 @@ static LRESULT ME_Char(ME_TextEditor *editor, WPARAM charCode,
{ {
WCHAR wstr; WCHAR wstr;
if (editor->bMouseCaptured)
return 0;
if (unicode) if (unicode)
wstr = (WCHAR)charCode; wstr = (WCHAR)charCode;
else else