Huw Davies : user32: End the tracking on a system menu double-click.
Module: wine Branch: master Commit: 022e4b824396a869512df39e93247b8a8847e512 URL: http://source.winehq.org/git/wine.git/?a=commit;h=022e4b824396a869512df39e93... Author: Huw Davies <huw(a)codeweavers.com> Date: Mon Jun 5 13:05:15 2017 +0100 user32: End the tracking on a system menu double-click. Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/menu.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c index 00abcc9..5866383 100644 --- a/dlls/user32/menu.c +++ b/dlls/user32/menu.c @@ -2575,7 +2575,7 @@ static void MENU_SwitchTracking( MTRACKER* pmt, HMENU hPtMenu, UINT id, UINT wFl * * Return TRUE if we can go on with menu tracking. */ -static BOOL MENU_ButtonDown( MTRACKER* pmt, HMENU hPtMenu, UINT wFlags ) +static BOOL MENU_ButtonDown( MTRACKER* pmt, UINT message, HMENU hPtMenu, UINT wFlags ) { TRACE("%p hPtMenu=%p\n", pmt, hPtMenu); @@ -2586,7 +2586,10 @@ static BOOL MENU_ButtonDown( MTRACKER* pmt, HMENU hPtMenu, UINT wFlags ) enum hittest ht = ht_item; if( IS_SYSTEM_MENU(ptmenu) ) + { + if (message == WM_LBUTTONDBLCLK) return FALSE; pos = 0; + } else ht = MENU_FindItemByCoords( ptmenu, pmt->pt, &pos ); @@ -3045,7 +3048,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, UINT wFlags, INT x, INT y, if (wFlags & TPM_BUTTONDOWN) { /* Get the result in order to start the tracking or not */ - fRemove = MENU_ButtonDown( &mt, hmenu, wFlags ); + fRemove = MENU_ButtonDown( &mt, WM_LBUTTONDOWN, hmenu, wFlags ); fEndMenu = !fRemove; } @@ -3131,7 +3134,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, UINT wFlags, INT x, INT y, case WM_LBUTTONDOWN: /* If the message belongs to the menu, removes it from the queue */ /* Else, end menu tracking */ - fRemove = MENU_ButtonDown( &mt, hmenu, wFlags ); + fRemove = MENU_ButtonDown( &mt, msg.message, hmenu, wFlags ); fEndMenu = !fRemove; break;
participants (1)
-
Alexandre Julliard