Wayland integration: support for server-side decorations
ClosedPublic

Authored by graesslin on Jan 5 2016, 12:09 PM.

Details

Summary

If the application runs on Wayland, check whether the
ServerSideDecoration protocol is supported. If that's the case, disable
Qt's decoration and tell the Wayland server to use Server side decoration
for normal windows and no decoration for popus, etc.

Diff Detail

Repository
R135 Integration for Qt applications in Plasma
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
graesslin updated this revision to Diff 1748.Jan 5 2016, 12:09 PM
graesslin retitled this revision from to Wayland integration: support for server-side decorations.
graesslin updated this object.
graesslin edited the test plan for this revision. (Show Details)
graesslin added reviewers: mart, sebas.
graesslin set the repository for this revision to R135 Integration for Qt applications in Plasma.
graesslin added a subscriber: plasma-devel.
mart accepted this revision.Jan 19 2016, 9:39 PM
mart edited edge metadata.
mart added inline comments.
src/platformtheme/kwaylandintegration.cpp
95

since is a long name already, going all the way, waylandserverdecoration ?

This revision is now accepted and ready to land.Jan 19 2016, 9:39 PM
sebas requested changes to this revision.Jan 19 2016, 9:44 PM
sebas edited edge metadata.

I'd prefer a hard dependency, not build time, to make it harder to screw this up. We're already depending on kwayland hard in libkscreen and kwin, so it's needed anyway to build Plasma. Besides, it's small and lives right next to this repo.

Build system can be simplified a bit, code itself looks good to me.

CMakeLists.txt
36

KWayland 5.6? (Not sure if the version is updated yet, if not, ignore and fix later)

37

Why not use KF5Wayland_FOUND right away?

autotests/CMakeLists.txt
57

(minor) indentation inconsistent with the bits above

This revision now requires changes to proceed.Jan 19 2016, 9:44 PM
graesslin updated this revision to Diff 2031.Jan 20 2016, 8:15 AM
graesslin edited edge metadata.

Removed conditional build.

graesslin marked 4 inline comments as done.Jan 20 2016, 8:18 AM
sebas accepted this revision.Jan 20 2016, 9:37 AM
sebas edited edge metadata.

Awesome.

src/platformtheme/kdeplatformtheme.cpp
45

Not sure what this header was used for, but should it not still be included?

This revision is now accepted and ready to land.Jan 20 2016, 9:37 AM
This revision was automatically updated to reflect the committed changes.