Rework Client fullscreen control
ClosedPublic

Authored by romangg on Jan 11 2019, 3:18 PM.

Details

Summary

After fixing superficial issues go and work over Client's fullscreen control.
This way we:

  • check first for what the rule wants uis to do,
  • do only proceed if there is a change from/to fullscreen
  • remove code, that becomes unneeded by this.

This goes with the assumption, that the current fullscreen state is always
correctly stored in the m_fullscreenMode variable, but the previous code
implicitly did the same at numerous occasions, just not in a consistent
manner.

Test Plan

Manually and auto tests still pass.

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.
romangg created this revision.Jan 11 2019, 3:18 PM
Restricted Application added a project: KWin. · View Herald TranscriptJan 11 2019, 3:18 PM
Restricted Application added a subscriber: kwin. · View Herald Transcript
romangg requested review of this revision.Jan 11 2019, 3:18 PM
zzag added a subscriber: zzag.Jan 11 2019, 8:03 PM
zzag added inline comments.
geometry.cpp
2505

Is it possible to have have a client initially in the fullscreen state?

romangg added inline comments.Jan 11 2019, 8:14 PM
geometry.cpp
2505

Yes, but when it does this it goes through this part in the beginning.

m_fullscreenMode is set to "no fullscreen" in the Client constructor and is only changed in this function here, where geom_fs_restore is set above in case it goes fullscreen.

Personal opinion: this is X11, let's not risk breaking it.

zzag added a comment.Feb 8 2019, 2:40 PM

Personal opinion: this is X11, let's not risk breaking it.

+1.

romangg updated this revision to Diff 59812.Jun 14 2019, 6:28 PM

Rebase on master.

zzag added a comment.Jun 17 2019, 8:35 AM

How does this patch exactly relate to T11098?

In D18185#481084, @zzag wrote:

How does this patch exactly relate to T11098?

I want to remove the old Xinerama / Screens multi-head support on X to simplify removal of Screens class. For that to become simpler in return I try to make code overall less convoluted at as many places as possible.

romangg updated this revision to Diff 61332.Jul 8 2019, 11:33 AM

Rebase on master / series changes.

romangg updated this revision to Diff 61395.Jul 9 2019, 8:58 AM

Rebase on master.

zzag accepted this revision.Jul 9 2019, 9:34 AM
zzag added inline comments.
This revision is now accepted and ready to land.Jul 9 2019, 9:34 AM
This revision was automatically updated to reflect the committed changes.
romangg marked an inline comment as done.