summaryrefslogtreecommitdiff
path: root/plugins
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2014-07-10 23:19:18 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2014-07-10 23:19:18 +0200
commit67f4800b48dd980a9e66ea20b58fb8e06910d6fe (patch)
treebf302ba9f4cbed3b452342ee2bfc3b7f736c2aa0 /plugins
parent080b1b05437b5e6888656f8be35ba6815fc34194 (diff)
UnityScreen: make sure we update the launcher size also on launchers added later
(bzr r3830.5.25)
Diffstat (limited to 'plugins')
-rw-r--r--plugins/unityshell/src/unityshell.cpp17
-rw-r--r--plugins/unityshell/src/unityshell.h1
2 files changed, 12 insertions, 6 deletions
diff --git a/plugins/unityshell/src/unityshell.cpp b/plugins/unityshell/src/unityshell.cpp
index e6368c869..7f7b44e03 100644
--- a/plugins/unityshell/src/unityshell.cpp
+++ b/plugins/unityshell/src/unityshell.cpp
@@ -3967,17 +3967,22 @@ void UnityScreen::initLauncher()
screen->setOptionForPlugin("scale", "x_offset", v);
};
- for (auto const& launcher : launcher_controller_->launchers())
- {
- launcher->size_changed.connect(on_launcher_size_changed);
- on_launcher_size_changed(launcher.GetPointer(), launcher->GetWidth(), launcher->GetHeight());
- }
+ auto check_launchers_size = [this, on_launcher_size_changed] {
+ launcher_size_connections_.Clear();
- UScreen::GetDefault()->changed.connect([this, on_launcher_size_changed] (int, std::vector<nux::Geometry> const&) {
for (auto const& launcher : launcher_controller_->launchers())
+ {
+ launcher_size_connections_.Add(launcher->size_changed.connect(on_launcher_size_changed));
on_launcher_size_changed(launcher.GetPointer(), launcher->GetWidth(), launcher->GetHeight());
+ }
+ };
+
+ UScreen::GetDefault()->changed.connect([this, check_launchers_size] (int, std::vector<nux::Geometry> const&) {
+ check_launchers_size();
});
+ check_launchers_size();
+
launcher_controller_->options()->scroll_inactive_icons = optionGetScrollInactiveIcons();
launcher_controller_->options()->minimize_window_on_click = optionGetLauncherMinimizeWindow();
diff --git a/plugins/unityshell/src/unityshell.h b/plugins/unityshell/src/unityshell.h
index 36af0514a..e5864d59b 100644
--- a/plugins/unityshell/src/unityshell.h
+++ b/plugins/unityshell/src/unityshell.h
@@ -423,6 +423,7 @@ private:
UBusManager ubus_manager_;
glib::SourceManager sources_;
connection::Wrapper hud_ungrab_slot_;
+ connection::Manager launcher_size_connections_;
CompRegion buffered_compiz_damage_this_frame_;
CompRegion buffered_compiz_damage_last_frame_;