Nikolay Sivov : comctl32/edit: Handle Ctrl-A shortcut as select all command.
Alexandre Julliard
julliard at winehq.org
Mon Feb 5 16:48:26 CST 2018
Module: wine
Branch: master
Commit: f7062d1d03c374bf8ba872f97e15261ee61ebaeb
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f7062d1d03c374bf8ba872f97e15261ee61ebaeb
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Feb 5 00:30:11 2018 +0300
comctl32/edit: Handle Ctrl-A shortcut as select all command.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/comctl32/edit.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/dlls/comctl32/edit.c b/dlls/comctl32/edit.c
index 9f065f6..86a0a58 100644
--- a/dlls/comctl32/edit.c
+++ b/dlls/comctl32/edit.c
@@ -1477,12 +1477,15 @@ static void EDIT_InvalidateText(EDITSTATE *es, INT start, INT end)
* In other words: this handler is OK
*
*/
-static void EDIT_EM_SetSel(EDITSTATE *es, UINT start, UINT end, BOOL after_wrap)
+static BOOL EDIT_EM_SetSel(EDITSTATE *es, UINT start, UINT end, BOOL after_wrap)
{
UINT old_start = es->selection_start;
UINT old_end = es->selection_end;
UINT len = get_text_length(es);
+ if (start == old_start && end == old_end)
+ return FALSE;
+
if (start == (UINT)-1) {
start = es->selection_end;
end = es->selection_end;
@@ -1535,6 +1538,8 @@ static void EDIT_EM_SetSel(EDITSTATE *es, UINT start, UINT end, BOOL after_wrap)
}
}
else EDIT_InvalidateText(es, start, old_end);
+
+ return TRUE;
}
@@ -3365,6 +3370,16 @@ static LRESULT EDIT_WM_KeyDown(EDITSTATE *es, INT key)
if ((es->style & ES_MULTILINE) && EDIT_IsInsideDialog(es))
SendMessageW(es->hwndParent, WM_NEXTDLGCTL, shift, 0);
break;
+ case 'A':
+ if (control)
+ {
+ if (EDIT_EM_SetSel(es, 0, get_text_length(es), FALSE))
+ {
+ EDIT_NOTIFY_PARENT(es, EN_UPDATE);
+ EDIT_NOTIFY_PARENT(es, EN_CHANGE);
+ }
+ }
+ break;
}
return TRUE;
}
More information about the wine-cvs
mailing list