Rework Client fullscreen control
Needs ReviewPublic

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

Details

Reviewers
None
Group Reviewers
KWin
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 6962
Build 6980: 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
2542

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
2542

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.