[effects/sheet] Grab modal windows

Summary:
If both the Glide effect and the Sheet effect are enabled,
they will conflict. Expected behavior would be:

* the Sheet effect animates only modal windows;
* the Glide effect animates the rest of normal windows.

In order to resolve the conflict, the Sheet effect has to grab
modal windows. Because it's quite specialized effect, we have
to ignore whether modal windows have been grabbed by the
Glide effect.

Test Plan:
* Enabled both the Glide effect and the Sheet effect;
* Opened Kate;
* Opened "Open file" dialog;
* Closed the dialog.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: abetts, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14560
icc-effect-5.14.5
Vlad Zagorodniy 2018-08-02 16:44:31 +03:00
parent 3332b32101
commit 10e99f64c1
1 changed files with 6 additions and 0 deletions

View File

@ -137,6 +137,9 @@ void SheetEffect::slotWindowAdded(EffectWindow* w)
break;
}
}
w->setData(WindowAddedGrabRole, QVariant::fromValue(static_cast<void*>(this)));
w->addRepaintFull();
}
@ -168,6 +171,9 @@ void SheetEffect::slotWindowClosed(EffectWindow* w)
}
if (!found)
info->parentY = 0;
w->setData(WindowClosedGrabRole, QVariant::fromValue(static_cast<void*>(this)));
w->addRepaintFull();
}