From b37b72b0068a11045667e6700e146549ee191b65 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Fri, 15 Dec 2006 15:04:01 +0800 Subject: [PATCH] user32: Center the context menu if it was activated via VK_APPS like Windows does. --- dlls/user32/edit.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c index f93c9aa4014..44c6f95bca8 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); } -- 2.11.4.GIT