Generalize constrainedStackingOrder for group transients and ordinary transients
ClosedPublic

Authored by zzag on Oct 2 2018, 5:54 AM.

Details

Summary

We don't really have to have two different code paths for group
transients and ordinary transients. For now, AbstractClient::hasTransient
is good enough to check the relationship between potential parent and
the transient.

In long term, we need to "invert" the relationship, instead of checking
whether given parent window has a transient, we should check whether
given transient is a transient for a given window so we can keep Deleted
transients above their old parents.

Diff Detail

Repository
R108 KWin
Branch
layers-simplify-logic
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 3811
Build 3829: arc lint + arc unit
zzag created this revision.Oct 2 2018, 5:54 AM
Restricted Application added a project: KWin. · View Herald TranscriptOct 2 2018, 5:54 AM
Restricted Application added a subscriber: kwin. · View Herald Transcript
zzag requested review of this revision.Oct 2 2018, 5:54 AM
zzag edited the summary of this revision. (Show Details)Oct 2 2018, 5:57 AM
zzag edited the summary of this revision. (Show Details)
zzag updated this revision to Diff 43491.Oct 12 2018, 6:29 PM

Add tests

zzag updated this revision to Diff 43492.Oct 12 2018, 6:30 PM

Fix typo

zzag updated this revision to Diff 43493.Oct 12 2018, 6:32 PM

--numTypos

zzag updated this revision to Diff 43494.Oct 12 2018, 6:34 PM

--numTypos

zzag updated this revision to Diff 43495.Oct 12 2018, 6:38 PM

--numTypos

zzag updated this revision to Diff 43497.Oct 12 2018, 6:43 PM

--numTypos

zzag edited the test plan for this revision. (Show Details)Oct 12 2018, 6:45 PM
zzag added a comment.Oct 12 2018, 6:50 PM

Also, does it make sense to not keep non-modal dialog group transients above? https://phabricator.kde.org/source/kwin/browse/master/layers.cpp$650-653

zzag updated this revision to Diff 43503.Oct 12 2018, 6:58 PM

--numTypos

zzag added inline comments.Oct 12 2018, 7:05 PM
autotests/integration/stacking_order_test.cpp
498

This is probably a bug.

zzag updated this revision to Diff 43507.Oct 12 2018, 7:49 PM

Simplify createGroupWindow

zzag added inline comments.Oct 15 2018, 9:58 AM
autotests/integration/stacking_order_test.cpp
498

I think that's because raiseClient doesn't use mainClients(). Should be fixed in another revision.

zzag updated this revision to Diff 43647.Oct 15 2018, 10:56 AM

Add FIXME

davidedmundson accepted this revision.Oct 15 2018, 11:30 AM
This revision is now accepted and ready to land.Oct 15 2018, 11:30 AM
This revision was automatically updated to reflect the committed changes.