summaryrefslogtreecommitdiff
diff options
-rw-r--r--launcher/FileManagerLauncherIcon.cpp30
-rw-r--r--launcher/FileManagerLauncherIcon.h6
-rw-r--r--launcher/StorageLauncherIcon.cpp20
-rw-r--r--launcher/StorageLauncherIcon.h4
4 files changed, 36 insertions, 24 deletions
diff --git a/launcher/FileManagerLauncherIcon.cpp b/launcher/FileManagerLauncherIcon.cpp
index 3fabb7adb..dbe3b0fba 100644
--- a/launcher/FileManagerLauncherIcon.cpp
+++ b/launcher/FileManagerLauncherIcon.cpp
@@ -49,6 +49,11 @@ FileManagerLauncherIcon::FileManagerLauncherIcon(ApplicationPtr const& app, Devi
SetQuirk(Quirk::VISIBLE, false);
SkipQuirkAnimation(Quirk::VISIBLE);
+ signals_conn_.Add(app_->window_opened.connect([this](ApplicationWindowPtr const& win) {
+ signals_conn_.Add(win->monitor.changed.connect([this] (int) { UpdateStorageWindows(); }));
+ UpdateStorageWindows();
+ }));
+
signals_conn_.Add(app_->desktop_file.changed.connect([this](std::string const& desktop_file) {
LOG_DEBUG(logger) << tooltip_text() << " desktop_file now " << desktop_file;
UpdateDesktopFile();
@@ -134,5 +139,30 @@ bool FileManagerLauncherIcon::OnShouldHighlightOnDrag(DndData const& dnd_data)
return StorageLauncherIcon::OnShouldHighlightOnDrag(dnd_data);
}
+bool FileManagerLauncherIcon::IsUserVisible() const
+{
+ return WindowedLauncherIcon::IsUserVisible();
+}
+
+WindowList FileManagerLauncherIcon::WindowsOnViewport()
+{
+ WindowFilterMask filter = 0;
+ filter |= WindowFilter::MAPPED;
+ filter |= WindowFilter::ON_CURRENT_DESKTOP;
+ filter |= WindowFilter::ON_ALL_MONITORS;
+
+ return WindowedLauncherIcon::GetWindows(filter);
+}
+
+WindowList FileManagerLauncherIcon::WindowsForMonitor(int monitor)
+{
+ WindowFilterMask filter = 0;
+ filter |= WindowFilter::MAPPED;
+ filter |= WindowFilter::ON_CURRENT_DESKTOP;
+
+ return WindowedLauncherIcon::GetWindows(filter, monitor);
+}
+
+
} // namespace launcher
} // namespace unity
diff --git a/launcher/FileManagerLauncherIcon.h b/launcher/FileManagerLauncherIcon.h
index 1996747a3..e252c143d 100644
--- a/launcher/FileManagerLauncherIcon.h
+++ b/launcher/FileManagerLauncherIcon.h
@@ -34,6 +34,12 @@ class FileManagerLauncherIcon : public ApplicationLauncherIcon, public StorageLa
public:
FileManagerLauncherIcon(ApplicationPtr const&, DeviceLauncherSection::Ptr const&, FileManager::Ptr const& = nullptr);
+ bool IsUserVisible() const override;
+
+protected:
+ WindowList WindowsOnViewport() override;
+ WindowList WindowsForMonitor(int monitor) override;
+
private:
WindowList GetManagedWindows() const override;
WindowList GetStorageWindows() const override;
diff --git a/launcher/StorageLauncherIcon.cpp b/launcher/StorageLauncherIcon.cpp
index ed5e70c80..fcd50c54d 100644
--- a/launcher/StorageLauncherIcon.cpp
+++ b/launcher/StorageLauncherIcon.cpp
@@ -73,26 +73,6 @@ WindowList StorageLauncherIcon::GetManagedWindows() const
return managed_windows_;
}
-WindowList StorageLauncherIcon::WindowsOnViewport()
-{
- WindowFilterMask filter = 0;
- filter |= WindowFilter::MAPPED;
- filter |= WindowFilter::ON_CURRENT_DESKTOP;
- filter |= WindowFilter::ON_ALL_MONITORS;
-
- return WindowedLauncherIcon::GetWindows(filter);
-}
-
-WindowList StorageLauncherIcon::WindowsForMonitor(int monitor)
-{
- WindowFilterMask filter = 0;
- filter |= WindowFilter::MAPPED;
- filter |= WindowFilter::ON_CURRENT_DESKTOP;
-
- return WindowedLauncherIcon::GetWindows(filter, monitor);
-}
-
-
void StorageLauncherIcon::OnWindowStateChanged()
{
bool active = false;
diff --git a/launcher/StorageLauncherIcon.h b/launcher/StorageLauncherIcon.h
index 81596351b..be7bf8074 100644
--- a/launcher/StorageLauncherIcon.h
+++ b/launcher/StorageLauncherIcon.h
@@ -37,10 +37,6 @@ protected:
void UpdateStorageWindows();
WindowList GetManagedWindows() const override;
virtual WindowList GetStorageWindows() const = 0;
-
- WindowList WindowsOnViewport() override;
- WindowList WindowsForMonitor(int monitor) override;
-
bool OnShouldHighlightOnDrag(DndData const& dnd_data) override;
private: