summaryrefslogtreecommitdiff
path: root/launcher
diff options
Diffstat (limited to 'launcher')
-rw-r--r--launcher/ApplicationLauncherIcon.cpp14
-rw-r--r--launcher/HudLauncherIcon.cpp2
-rw-r--r--launcher/Launcher.cpp16
-rw-r--r--launcher/LauncherIcon.cpp8
-rw-r--r--launcher/SingleMonitorLauncherIcon.cpp8
-rw-r--r--launcher/SingleMonitorLauncherIcon.h9
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_;
};
}