diff options
Diffstat (limited to 'launcher')
| -rw-r--r-- | launcher/ApplicationLauncherIcon.cpp | 14 | ||||
| -rw-r--r-- | launcher/HudLauncherIcon.cpp | 2 | ||||
| -rw-r--r-- | launcher/Launcher.cpp | 16 | ||||
| -rw-r--r-- | launcher/LauncherIcon.cpp | 8 | ||||
| -rw-r--r-- | launcher/SingleMonitorLauncherIcon.cpp | 8 | ||||
| -rw-r--r-- | launcher/SingleMonitorLauncherIcon.h | 9 |
6 files changed, 30 insertions, 27 deletions
diff --git a/launcher/ApplicationLauncherIcon.cpp b/launcher/ApplicationLauncherIcon.cpp index dd80300f2..a01577038 100644 --- a/launcher/ApplicationLauncherIcon.cpp +++ b/launcher/ApplicationLauncherIcon.cpp @@ -491,11 +491,15 @@ std::vector<Window> ApplicationLauncherIcon::WindowsForMonitor(int monitor) void ApplicationLauncherIcon::OnWindowMinimized(guint32 xid) { - if (!app_->OwnsWindow(xid)) - return; - - Present(0.5f, 600); - UpdateQuirkTimeDelayed(300, Quirk::SHIMMER); + for (auto const& window: app_->GetWindows()) + { + if (xid == window->window_id()) + { + Present(0.5f, 600, window->monitor()); + UpdateQuirkTimeDelayed(300, Quirk::SHIMMER, window->monitor()); + break; + } + } } void ApplicationLauncherIcon::OnWindowMoved(guint32 moved_win) diff --git a/launcher/HudLauncherIcon.cpp b/launcher/HudLauncherIcon.cpp index 23882d632..1c223f627 100644 --- a/launcher/HudLauncherIcon.cpp +++ b/launcher/HudLauncherIcon.cpp @@ -34,7 +34,7 @@ namespace launcher DECLARE_LOGGER(logger, "unity.launcher.icon.hud"); HudLauncherIcon::HudLauncherIcon(LauncherHideMode hide_mode) - : SingleMonitorLauncherIcon(IconType::HUD, -1) + : SingleMonitorLauncherIcon(IconType::HUD) , launcher_hide_mode_(hide_mode) { tooltip_text = _("HUD"); diff --git a/launcher/Launcher.cpp b/launcher/Launcher.cpp index 12392d28d..17a874937 100644 --- a/launcher/Launcher.cpp +++ b/launcher/Launcher.cpp @@ -583,7 +583,7 @@ float Launcher::IconStartingPulseValue(AbstractLauncherIcon::Ptr const& icon, st if (starting_progress == 1.0f && !icon->GetQuirk(AbstractLauncherIcon::Quirk::RUNNING, monitor())) { icon->SetQuirk(AbstractLauncherIcon::Quirk::STARTING, false, monitor()); - icon->ResetQuirkTime(AbstractLauncherIcon::Quirk::STARTING); + icon->ResetQuirkTime(AbstractLauncherIcon::Quirk::STARTING, monitor()); } return 1.0f-(0.5f + (float)(std::cos(M_PI * (float)(MAX_STARTING_BLINKS * 2) * starting_progress)) * 0.5f); @@ -627,7 +627,7 @@ float Launcher::IconBackgroundIntensity(AbstractLauncherIcon::Ptr const& icon, s break; case LAUNCH_ANIMATION_PULSE: if (running_progress == 1.0f && icon->GetQuirk(AbstractLauncherIcon::Quirk::RUNNING, monitor())) - icon->ResetQuirkTime(AbstractLauncherIcon::Quirk::STARTING); + icon->ResetQuirkTime(AbstractLauncherIcon::Quirk::STARTING, monitor()); result = backlight_strength; if (options()->backlight_mode() == BACKLIGHT_ALWAYS_ON) @@ -1664,6 +1664,12 @@ void Launcher::OnIconAdded(AbstractLauncherIcon::Ptr const& icon) icon->needs_redraw.connect(sigc::mem_fun(this, &Launcher::OnIconNeedsRedraw)); icon->tooltip_visible.connect(sigc::mem_fun(this, &Launcher::OnTooltipVisible)); + + if (IsOverlayOpen() && !hovered_) + { + icon->SetQuirk(AbstractLauncherIcon::Quirk::DESAT, true, monitor()); + icon->ResetQuirkTime(AbstractLauncherIcon::Quirk::DESAT, monitor()); + } } void Launcher::OnIconRemoved(AbstractLauncherIcon::Ptr const& icon) @@ -2656,12 +2662,6 @@ void Launcher::ProcessDndMove(int x, int y, std::list<char*> mimes) // only set hover once we know our first x/y SetActionState(ACTION_DRAG_EXTERNAL); SetStateMouseOverLauncher(true); - - if (!steal_drag_ && !dnd_data_.Uris().empty()) - { - for (auto const& it : *model_) - it->SetQuirk(AbstractLauncherIcon::Quirk::DESAT, !it->ShouldHighlightOnDrag(dnd_data_), monitor()); - } } SetMousePosition(x - parent_->GetGeometry().x, y - parent_->GetGeometry().y); diff --git a/launcher/LauncherIcon.cpp b/launcher/LauncherIcon.cpp index 7e162a5a3..899f2083f 100644 --- a/launcher/LauncherIcon.cpp +++ b/launcher/LauncherIcon.cpp @@ -644,7 +644,7 @@ void LauncherIcon::SetCenter(nux::Point3 const& new_center, int monitor) } return false; - }, CENTER_STABILIZE_TIMEOUT); + }, CENTER_STABILIZE_TIMEOUT + std::to_string(monitor)); } nux::Point3 @@ -712,7 +712,7 @@ LauncherIcon::Present(float present_urgency, int length, int monitor) Unpresent(monitor); return false; - }, PRESENT_TIMEOUT); + }, PRESENT_TIMEOUT + std::to_string(monitor)); } _present_urgency = CLAMP(present_urgency, 0.0f, 1.0f); @@ -726,7 +726,7 @@ LauncherIcon::Unpresent(int monitor) if (!GetQuirk(Quirk::PRESENTED, monitor)) return; - _source_manager.Remove(PRESENT_TIMEOUT); + _source_manager.Remove(PRESENT_TIMEOUT + std::to_string(monitor)); SetQuirk(Quirk::PRESENTED, false, monitor); SetQuirk(Quirk::UNFOLDED, false, monitor); } @@ -833,7 +833,7 @@ LauncherIcon::UpdateQuirkTimeDelayed(guint ms, LauncherIcon::Quirk quirk, int mo _source_manager.AddTimeout(ms, [this, quirk, monitor] { UpdateQuirkTime(quirk, monitor); return false; - }, QUIRK_DELAY_TIMEOUT); + }, QUIRK_DELAY_TIMEOUT + std::to_string(unsigned(quirk)) + std::to_string(monitor)); } void diff --git a/launcher/SingleMonitorLauncherIcon.cpp b/launcher/SingleMonitorLauncherIcon.cpp index d0ad66179..e745a80ad 100644 --- a/launcher/SingleMonitorLauncherIcon.cpp +++ b/launcher/SingleMonitorLauncherIcon.cpp @@ -27,7 +27,7 @@ namespace unity namespace launcher { -SingleMonitorLauncherIcon::SingleMonitorLauncherIcon(IconType type, unsigned monitor) +SingleMonitorLauncherIcon::SingleMonitorLauncherIcon(IconType type, int monitor) : SimpleLauncherIcon(type) , monitor_(monitor) { @@ -37,10 +37,10 @@ SingleMonitorLauncherIcon::SingleMonitorLauncherIcon(IconType type, unsigned mon void SingleMonitorLauncherIcon::UpdateMonitor() { for (unsigned i = 0; i < monitors::MAX; ++i) - SetVisibleOnMonitor(i, i == monitor_); + SetVisibleOnMonitor(i, static_cast<int>(i) == monitor_); } -void SingleMonitorLauncherIcon::SetMonitor(unsigned monitor) +void SingleMonitorLauncherIcon::SetMonitor(int monitor) { if (monitor != monitor_) { @@ -49,7 +49,7 @@ void SingleMonitorLauncherIcon::SetMonitor(unsigned monitor) } } -unsigned SingleMonitorLauncherIcon::GetMonitor() const +int SingleMonitorLauncherIcon::GetMonitor() const { return monitor_; } diff --git a/launcher/SingleMonitorLauncherIcon.h b/launcher/SingleMonitorLauncherIcon.h index 369aed51c..b24645e79 100644 --- a/launcher/SingleMonitorLauncherIcon.h +++ b/launcher/SingleMonitorLauncherIcon.h @@ -29,12 +29,11 @@ namespace launcher class SingleMonitorLauncherIcon : public SimpleLauncherIcon { - public: - SingleMonitorLauncherIcon(IconType type, unsigned monitor); + SingleMonitorLauncherIcon(IconType type, int monitor = -1); -void SetMonitor(unsigned monitor); -unsigned GetMonitor() const; +void SetMonitor(int monitor); +int GetMonitor() const; protected: std::string GetName() const; @@ -43,7 +42,7 @@ protected: private: void UpdateMonitor(); - unsigned monitor_; + int monitor_; }; } |
