summaryrefslogtreecommitdiff
path: root/UnityCore
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2012-03-13 00:23:24 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2012-03-13 00:23:24 +0100
commitf27c0c11acbdda4ceb798783b4638fe4f0b57b21 (patch)
tree0759f1c876fa35d5bb62d9814185967aeeafc049 /UnityCore
parentccbe84e73c18df56d89e1e383faa572596024d0d (diff)
Indicators: avoid to cast the AppmenuIndicator when not needed.
(bzr r1858.9.180)
Diffstat (limited to 'UnityCore')
-rw-r--r--UnityCore/Indicators.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/UnityCore/Indicators.cpp b/UnityCore/Indicators.cpp
index e9e298400..2186ed07f 100644
--- a/UnityCore/Indicators.cpp
+++ b/UnityCore/Indicators.cpp
@@ -141,9 +141,15 @@ Indicator::Ptr Indicators::Impl::AddIndicator(std::string const& name)
Indicator* indptr;
if (name == "libappmenu.so")
- indptr = new AppmenuIndicator(name);
+ {
+ AppmenuIndicator *appmenu = new AppmenuIndicator(name);
+ appmenu->on_show_appmenu.connect(sigc::mem_fun(owner_, &Indicators::OnShowAppMenu));
+ indptr = appmenu;
+ }
else
+ {
indptr = new Indicator(name);
+ }
Indicator::Ptr indicator(indptr);
@@ -152,14 +158,6 @@ Indicator::Ptr Indicators::Impl::AddIndicator(std::string const& name)
indicator->on_secondary_activate.connect(sigc::mem_fun(owner_, &Indicators::OnEntrySecondaryActivate));
indicator->on_scroll.connect(sigc::mem_fun(owner_, &Indicators::OnEntryScroll));
- if (indicator->IsAppmenu())
- {
- AppmenuIndicator *appmenu = dynamic_cast<AppmenuIndicator*>(indicator.get());
-
- if (appmenu)
- appmenu->on_show_appmenu.connect(sigc::mem_fun(owner_, &Indicators::OnShowAppMenu));
- }
-
indicators_[name] = indicator;
owner_->on_object_added.emit(indicator);