[wayland] Process pending state and map the client on commit
ClosedPublic

Authored by zzag on Oct 1 2019, 8:33 AM.

Details

Summary

Move unrelated code out of XdgShellClient::addDamage() into a separate
method.

Diff Detail

Repository
R108 KWin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
zzag created this revision.Oct 1 2019, 8:33 AM
Restricted Application added a project: KWin. · View Herald TranscriptOct 1 2019, 8:33 AM
Restricted Application added a subscriber: kwin. · View Herald Transcript
zzag requested review of this revision.Oct 1 2019, 8:33 AM
This revision was not accepted when it landed; it landed in state Needs Review.Oct 2 2019, 9:40 AM
This revision was automatically updated to reflect the committed changes.

Heh, I wasn't fully done reviewing this - there's some very big changes in the order events are processed which might have subtle nuances.
My biggest concern was that we're now signalling damages before we've mapped the window, which is a bit weird. Fortunately EffectsHandlerImpl::slotWindowDamaged has a guard already for some obscure teardown case and that seems to be the only user.

This also somewhat goes against the API SurfaceInterface is trying to go for, which abstracts the double buffered API into a declarative set of properties. We're going to end up mixing two different styles as to whose responsibility it is to handle the atomic setting of everything.

I see why you've done it, and using damage was awful, but I think we need to be careful.

Anyway, reviewed now. Belated ship it.

zzag added a comment.Oct 2 2019, 10:27 AM

This also somewhat goes against the API SurfaceInterface is trying to go for, which abstracts the double buffered API into a declarative set of properties.

Long story short: This is not going to work with xdg-shell because of the way geometry handling should be done.