Dmitry Timoshkov : user32: Center the context menu if it was activated via VK_APPS like Windows does.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Dec 15 07:21:40 CST 2006


Module: wine
Branch: master
Commit: b37b72b0068a11045667e6700e146549ee191b65
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b37b72b0068a11045667e6700e146549ee191b65

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Fri Dec 15 15:04:01 2006 +0800

user32: Center the context menu if it was activated via VK_APPS 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(EDITSTAT
 	/* 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);
 }




More information about the wine-cvs mailing list