user32: Center the context menu if it was activated via VK_KEYS
like Windows does
Dmitry Timoshkov
dmitry at codeweavers.com
Fri Dec 15 01:04:01 CST 2006
Hello,
Changelog:
user32: Center the context menu if it was activated via VK_KEYS like Windows does.
---
dlls/user32/edit.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c
index f93c9aa..44c6f95 100644
--- a/dlls/user32/edit.c
+++ b/dlls/user32/edit.c
@@ -4102,6 +4102,16 @@ static void EDIT_WM_ContextMenu(EDITSTATE *es, INT x, INT y)
/* select all */
EnableMenuItem(popup, 7, MF_BYPOSITION | (start || (end != strlenW(es->text)) ? MF_ENABLED : MF_GRAYED));
+ if (x == -1 && y == -1) /* passed via VK_APPS press/release */
+ {
+ RECT rc;
+ /* Windows places the menu at the edit's center in this case */
+ GetClientRect(es->hwndSelf, &rc);
+ MapWindowPoints(es->hwndSelf, 0, (POINT *)&rc, 2);
+ x = rc.left + (rc.right - rc.left) / 2;
+ y = rc.top + (rc.bottom - rc.top) / 2;
+ }
+
TrackPopupMenu(popup, TPM_LEFTALIGN | TPM_RIGHTBUTTON, x, y, 0, es->hwndSelf, NULL);
DestroyMenu(menu);
}
--
1.4.4.2
More information about the wine-patches
mailing list