Commit fe47a8d9 authored by David Edmundson's avatar David Edmundson

[effects/slideback] Port away from deprecated EffectWindow::desktop

Summary:
Not only does the function windowsShareDesktop become a lot more complex
with the new desktop cardinality comparing if they share any desktop
isn't actually what we want.

If I have 2 windows on desktop 1 and the lower stacked window is also on
desktop 2, when I switch desktops the focus will change, but we don't
want to animate anything here as on this dekstop it has nothing to slide
in front of.

Instead this patch simply checks both windows are on the current
desktop.

Test Plan:
Loaded a few windows. Some on one, some on more.
Before if a window was on desktop 1&2 it wouldn't animate on 2.

Windows now seem to animate when they should and not when they shouldn't.

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17943
parent 1084f162
......@@ -35,12 +35,6 @@ SlideBackEffect::SlideBackEffect()
connect(effects, SIGNAL(tabBoxClosed()), SLOT(slotTabBoxClosed()));
}
static inline bool windowsShareDesktop(EffectWindow *w1, EffectWindow *w2)
{
return w1->isOnAllDesktops() || w2->isOnAllDesktops() || w1->desktop() == w2->desktop();
}
void SlideBackEffect::slotStackingOrderChanged()
{
if (effects->activeFullScreenEffect() || m_tabboxActive) {
......@@ -79,7 +73,7 @@ void SlideBackEffect::windowRaised(EffectWindow *w)
currentFound = true;
}
} else {
if (isWindowUsable(tmp) && windowsShareDesktop(tmp, w)) {
if (isWindowUsable(tmp) && tmp->isOnCurrentDesktop() && w->isOnCurrentDesktop()) {
// Do we have to move it?
if (intersects(w, tmp->geometry())) {
QRect slideRect;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment