diff options
Diffstat (limited to 'unity-shared')
| -rw-r--r-- | unity-shared/MenuManager.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/unity-shared/MenuManager.cpp b/unity-shared/MenuManager.cpp index 77828700d..36d9d538b 100644 --- a/unity-shared/MenuManager.cpp +++ b/unity-shared/MenuManager.cpp @@ -325,17 +325,12 @@ struct Manager::Impl : sigc::trackable bool RegisterTracker(std::string const& menubar, PositionTracker const& cb) { - auto it = position_trackers_.find(menubar); - - if (it != end(position_trackers_)) - return false; - - position_trackers_.insert({menubar, cb}); + bool added = position_trackers_.insert({menubar, cb}).second; - if (active_menubar_ == menubar) + if (added && active_menubar_ == menubar) UpdateActiveTracker(); - return true; + return added; } bool UnregisterTracker(std::string const& menubar, PositionTracker const& cb) |
