From a2b0a7ac3e298f894cda3b74c5770846f901fd5c Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Sun, 2 Apr 2006 21:47:46 +0000 Subject: [PATCH] Avoid tracking the menubar if it's tracking already git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16974 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/MenuBar.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/kits/interface/MenuBar.cpp b/src/kits/interface/MenuBar.cpp index 0e6c4a9ea8..086367b9af 100644 --- a/src/kits/interface/MenuBar.cpp +++ b/src/kits/interface/MenuBar.cpp @@ -298,6 +298,9 @@ BMenuBar::operator=(const BMenuBar &) void BMenuBar::StartMenuBar(int32 menuIndex, bool sticky, bool showMenu, BRect *specialRect) { + if (fTracking) + return; + BWindow *window = Window(); if (window == NULL) debugger("MenuBar must be added to a window before it can be used."); @@ -305,7 +308,7 @@ BMenuBar::StartMenuBar(int32 menuIndex, bool sticky, bool showMenu, BRect *speci BAutolock lock(window); if (!lock.IsLocked()) return; - + fPrevFocusToken = -1; fTracking = true; @@ -329,6 +332,7 @@ BMenuBar::StartMenuBar(int32 menuIndex, bool sticky, bool showMenu, BRect *speci send_data(fTrackingPID, 0, &data, sizeof(data)); } else { + fTracking = false; _set_menu_sem_(window, B_NO_MORE_SEMS); delete_sem(fMenuSem); }