| Summary: | BorderlessMaximizedWindows=true forces server-side decorations | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Francis Herne <mail> |
| Component: | decorations | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | minor | Flags: | thomas.luebking:
ReviewRequest+
|
| Priority: | NOR | ||
| Version First Reported In: | 5.5.4 | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| URL: | https://git.reviewboard.kde.org/r/127198/ | ||
| Latest Commit: | http://commits.kde.org/kwin/9d09cf6dc9cb36ebf94663106a87141642599430 | Version Fixed/Implemented In: | 5.6 |
| Sentry Crash Report: | |||
| Attachments: |
xprop output, before maximising (no border)
diff to after maximising/unmaximising (with border added) |
||
|
Description
Francis Herne
2016-02-25 17:13:08 UTC
Wild guess:
diff --git a/geometry.cpp b/geometry.cpp
index 1bffa9b..9b06d32 100644
--- a/geometry.cpp
+++ b/geometry.cpp
@@ -2256,7 +2256,7 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust)
// triggers a maximize change.
// The next setNoBorder interation will exit since there's no change but the first recursion pullutes the restore geometry
changeMaximizeRecursion = true;
- setNoBorder(app_noborder || max_mode == MaximizeFull);
+ setNoBorder(app_noborder || m_motif.noBorder() || max_mode == MaximizeFull);
changeMaximizeRecursion = false;
}
If you can try the patch, that would be awesome - otherwise please attach the output of "xprop" on such window (state doesn't matter)
Created attachment 97560 [details]
xprop output, before maximising (no border)
Output of running xprop on a gitg window under KWin, before maximising the window.
Created attachment 97561 [details]
diff to after maximising/unmaximising (with border added)
After maximising and unmaximising, a border is added and xprop's output changes slightly.
I tried the patch (compiling KWin made my laptop's fan rather unhappy, not to mention my ears). Unfortunately there was no noticeable change; decorations still appear when unmaximising the window. xprop output is attached above. You likely installed the recompiled kwin version out of PATH or similar - the patch works (tested gtk3-demo which shares CSD & relevant props) and the props support that.
Correct patch (motif hint must be flagged & invoking rules is nice - neither is relevant for the behavior)
diff --git a/geometry.cpp b/geometry.cpp
index 1bffa9b..2a07a20 100644
--- a/geometry.cpp
+++ b/geometry.cpp
@@ -2256,7 +2256,7 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust)
// triggers a maximize change.
// The next setNoBorder interation will exit since there's no change but the first recursion pullutes the restore geometry
changeMaximizeRecursion = true;
- setNoBorder(app_noborder || max_mode == MaximizeFull);
+ setNoBorder(rules()->checkNoBorder(app_noborder || (m_motif.hasDecoration() && m_motif.noBorder()) || max_mode == MaximizeFull));
changeMaximizeRecursion = false;
}
Review-request as soon as I can focus for more than a minute next time :-(
Sorry, yes, I must have done something wrong. Latest patch works for me. Git commit 9d09cf6dc9cb36ebf94663106a87141642599430 by Thomas Lübking. Committed on 29/02/2016 at 08:48. Pushed by luebking into branch 'master'. respect motif and rules on unmaximizing when restoring a borderless maximized, the window shall not suddenly be decorated FIXED-IN: 5.6 REVIEW: 127198 M +1 -1 geometry.cpp http://commits.kde.org/kwin/9d09cf6dc9cb36ebf94663106a87141642599430 |