From 64a74d5eff7c9e0356724c0e47ebe2983ea6735d Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Thu, 23 Nov 2006 21:39:49 +0000 Subject: [PATCH] close the menu immediately when user clicks outside the menu git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19366 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/Menu.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index 1fc15c2ca8..687154a390 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -1348,11 +1348,15 @@ BMenu::_track(int *action, bigtime_t trackTime, long start) UnlockLooper(); if (buttons != 0 && IsStickyMode()) { - BMenu *supermenu = Supermenu(); - for(; supermenu; supermenu = supermenu->Supermenu()) - supermenu->SetStickyMode(false); - SetStickyMode(false); - trackTime = 0; + if (item == NULL) + fState = MENU_STATE_CLOSED; + else { + BMenu *supermenu = Supermenu(); + for(; supermenu; supermenu = supermenu->Supermenu()) + supermenu->SetStickyMode(false); + SetStickyMode(false); + trackTime = 0; + } } else if (buttons == 0 && !IsStickyMode()) { /* TODO: FIXME! trackTime is a hacky workaround for BMenuField. It opens directly under your mouse pointer, so when you release the mouse