Bug 405385

Summary: Disabling window borders prompts client to show client-side decoration
Product: [Plasma] kwin Reporter: Kai Uwe Broulik <kde>
Component: wayland-genericAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: bugseforuns, nate
Priority: NOR    
Version First Reported In: git master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In: 5.15.4
Sentry Crash Report:

Description Kai Uwe Broulik 2019-03-12 08:15:54 UTC
SUMMARY
When disabling window borders of a window, either by choosing "No Border" from the window decoration menu or by using BorderlessMaximizedWindows the window ends up using client-side decorations instead.

STEPS TO REPRODUCE
1. Start a Qt application on Wayland
2. Choose "No Border" from window title bar menu

OBSERVED RESULT
The window starts drawing the default Qt window decoration

EXPECTED RESULT
The window stays without any decoration

SOFTWARE/OS VERSIONS
KDE Plasma Version: 5.15.80 (git master)
KDE Frameworks Version: 5.56
Qt Version: 5.12.0
Comment 1 Kai Uwe Broulik 2019-03-12 08:21:53 UTC
Likely just needs to force server-side decorations when user no border is set:
auto mode = isDecorated() || m_userNoBorder ? XdgDecorationInterface::Mode::ServerSide: XdgDecorationInterface::Mode::ClientSide;
Comment 2 Vlad Zahorodnii 2019-03-12 08:29:54 UTC
Yep.
Comment 3 Kai Uwe Broulik 2019-04-01 08:34:16 UTC
Git commit dc552ee2ae898d69f4592922b0c39b959f47b20c by Kai Uwe Broulik.
Committed on 01/04/2019 at 08:29.
Pushed by broulik into branch 'Plasma/5.15'.

Force server-side decoration if no borders are forced by user

Otherwise the client will start drawing its own border now.
FIXED-IN: 5.15.4

Differential Revision: https://phabricator.kde.org/D19705

M  +72   -1    autotests/integration/maximize_test.cpp
M  +1    -1    shell_client.cpp

https://commits.kde.org/kwin/dc552ee2ae898d69f4592922b0c39b959f47b20c