Bug 475700

Summary: Non-center-aligned panel overlaps windows
Product: [Plasma] plasmashell Reporter: Nate Graham <nate>
Component: PanelAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: clay, dennis, eric1, kde, niccolo.venerandi, niccolo
Priority: NOR Keywords: qt6, wayland
Version: 5.90.0   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=477939
Latest Commit: Version Fixed In: 6.0
Sentry Crash Report:
Attachments: correct behaviour
correct
incorrect (actual) behaviour

Description Nate Graham 2023-10-16 15:04:49 UTC
Plasma 6 git master, Wayland, 200% scaling.


STEPS TO REPRODUCE
1. Have a vertical panel on either a left or right screen edge (doesn't make a difference)
2. Edit the panel to change the alignment from "Center" to either "Top" or "Bottom"
3. Maximize a window


OBSERVED RESULT
The window goes under the panel


EXPECTED RESULT
The window does not go under the panel
Comment 1 Dennis 2023-11-25 00:13:10 UTC
Created attachment 163440 [details]
correct behaviour
Comment 2 Dennis 2023-11-25 00:14:07 UTC
I can confirm this, I'm on:
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.81.80
KDE Frameworks Version: 5.245.0
Qt Version: 6.6.0
Kernel Version: 6.2.0-37-generic (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i7-8565U CPU @ 1.80GHz
Memory: 15,3 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 620
Manufacturer: Dell Inc.
Product Name: XPS 13 9380
Comment 3 Dennis 2023-11-25 00:15:33 UTC
Created attachment 163441 [details]
correct
Comment 4 Dennis 2023-11-25 00:17:27 UTC
Created attachment 163442 [details]
incorrect (actual) behaviour

incorrect (actual) behaviour
Comment 5 Niccolò Venerandi 2023-11-25 15:59:05 UTC
Can reproduce, investigating
Comment 6 Niccolò Venerandi 2023-11-26 10:25:24 UTC
This seems to me like a design flaw of layer shells; it clearly states in https://wayland.app/protocols/wlr-layer-shell-unstable-v1 that top/bottom aligned panels are to be achieved by setting two screen sides as an anchor, and yet the exclusive area documentation says that when you set two screen sides as an anchor the exclusive area will be ignored and set as 0. Thus, there's currently no way - according to that documentation - to have non-centered panels that still preserve exclusive areas on the border. I'm not sure how much LayerShellQT can deviate from the above documentation, or whether we can make proposals to change it, but this seems to be currently intentional and unfixable
Comment 7 Nate Graham 2023-11-28 21:21:39 UTC
*** Bug 477597 has been marked as a duplicate of this bug. ***
Comment 8 Nate Graham 2023-12-05 21:32:54 UTC
*** Bug 477793 has been marked as a duplicate of this bug. ***
Comment 9 Bug Janitor Service 2023-12-21 14:47:13 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3715
Comment 10 Marco Martin 2024-01-26 11:56:01 UTC
Git commit 184585264f560b0f6c6b39e01f0a6cdec0ab5698 by Marco Martin.
Committed on 26/01/2024 at 12:55.
Pushed by mart into branch 'master'.

Add a new setExclusiveEdge call in the protocol

This can be used to disambiguate the exclusive edge when the anchors are on a corner (so there would be 2 candidates)

it's quite quick and dirty mostly to understand if we do want to push for something along the lines (it should at least do a protocol error when the requested edge is not within the anchors)

M  +1    -15   shell/panelconfigview.cpp
M  +7    -0    shell/panelview.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/184585264f560b0f6c6b39e01f0a6cdec0ab5698
Comment 11 Vlad Zahorodnii 2024-01-26 13:53:13 UTC
Git commit 4382935b5de35d6d50e4efe710b36a234101f4b3 by Vlad Zahorodnii, on behalf of Marco Martin.
Committed on 26/01/2024 at 13:54.
Pushed by vladz into branch 'Plasma/6.0'.

Add a new setExclusiveEdge call in the protocol

This can be used to disambiguate the exclusive edge when the anchors are on a corner (so there would be 2 candidates)

it's quite quick and dirty mostly to understand if we do want to push for something along the lines (it should at least do a protocol error when the requested edge is not within the anchors)


(cherry picked from commit 184585264f560b0f6c6b39e01f0a6cdec0ab5698)

M  +1    -15   shell/panelconfigview.cpp
M  +7    -0    shell/panelview.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/4382935b5de35d6d50e4efe710b36a234101f4b3