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
Branch
clientFullscreenCtrl
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 13736
Build 13754: arc lint + arc unit
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.