Bug 478096

Summary: Cannot tell if window is snapped to panel - borderless window decoration usability
Product: [Plasma] plasmashell Reporter: Jakob Petsovits <jpetso>
Component: PanelAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED INTENTIONAL    
Severity: normal CC: kwin-bugs-null, nate, niccolo.venerandi, uhhadd
Priority: NOR Keywords: qt6
Version First Reported In: master   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Photo of borderless window snapped to panel
one of the two screenshots mentioned above (which one?)
another one of the two screenshots mentioned above (which one?)

Description Jakob Petsovits 2023-12-05 06:20:18 UTC
SUMMARY

Borderless windows are the default in Plasma 6. There is no recognizable line between window contents and panel anymore. When I maximize a window, vertically or all the way, I cannot tell if it's fully visible or if a part of it is hidden underneath the panel.

This never bothered me with the previous multi-pixel borders, and I now find it very taxing not to know how tall my windows actually are. Especially when plugging or unplugging monitors can move windows around between displays and resize them, not always with the size & position I'd expect.


STEPS TO REPRODUCE
1. Configure Breeze window decoration with the borderless theme default. Use light Breeze styles for panels & widgets.
2. Open Firefox and resize it such that the bottom snaps to your panel.
3. Navigate to a page that's taller than your screen.
4. Assume that you don't have immediate memory of your window resizing, either because of (un)plugging a monitor, or because you resumed from suspend after a night or two of not using your laptop, or just because you don't want to carry that mental overhead with you all the time.

OBSERVED RESULT
You can't tell if the Firefox window ends at the panel or continues below the panel. The only way to tell is to hover a link and see if its URL shows up at the bottom (if it does, you know where the bottom is).

EXPECTED RESULT
I have visual feedback whether the window ends at the panel or continues underneath it.

SOFTWARE/OS VERSIONS
Compositing: Yes, turned on, I get lots of shadows and whatnot
Operating System: Arch Linux 
KDE Plasma Version: 5.90.0
KDE Frameworks Version: 5.246.0
Qt Version: 6.6.1
Kernel Version: 6.6.3-arch1-1 (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

ADDITIONAL INFORMATION
Clean style is neat and I'm not a hater of borderless or flat presentation, but we can't in good conscience ship with a major usability regression like that as a default. We have to draw a line somewhere. Presumably at the panel-facing edge of the window, but conceivably even on the panel's window-facing edge could be an option too. I'd be happy with even just a thin 1px line and only if shadows don't show, i.e. when window and panel snap together.
Comment 1 Nate Graham 2023-12-05 17:18:37 UTC
> Borderless windows are the default in Plasma 6
Actually it has been the default for years, starting in the middle of Plasma 5.

> There is no recognizable line between window contents and panel anymore.
This is not an intentional effect; the panel should be casting a shadow over the window. Can you attach a screenshot that shows the issue you're encountering?
Comment 2 Jakob Petsovits 2023-12-05 19:49:49 UTC
Created attachment 163918 [details]
Photo of borderless window snapped to panel

My Plasma 6 Spectacle now stopped working even on the X11 session due to process authorization troubles, so here's a crappy photo taken with my phone camera instead. Despite the lower resolution, it still shows that it's impossible to tell whether or not the window ends at the panel or extends further down.

> Actually it has been the default for years, starting in the middle of Plasma 5.

Hm. I must have missed the transition because it didn't automatically change my old settings for my main (Plasma 5) user. That said... the original wording is not wrong! Borderless is the default in Plasma 6, and I'd argue that this needs fixing even if we've previously shipped it in this state. :P

(FAQ: Why is this a problem? Imagine that you're flicking your mouse wheel / touchpad all the way down, and you hit the bottom. You think you've seen it all, but there's still more content hidden underneath the panel but you missed it because you thought the entire window was visible on screen. Or you're aware of the issue but you're not sure if you've seen it all, so you have to resize your window to a little less tall and move it up a little just to be sure. This could all be prevented with a simple "this window ends here" indicator.)
Comment 3 Nate Graham 2023-12-05 19:54:56 UTC
As I suspected, the problem is that panel isn't casting a shadow on the window, which it should be doing. I have periodically noticed this myself in Plasma 6, but it's not reproducible, and I haven't found the triggering condition yet.

> Borderless is the default in Plasma 6
Ah I see what you mean now. I was referring to actual window borders (as in, from the window decoration) which were turned off in the middle of Plasma 5. For Plasma 6, what's changed is that some QtWidgets apps have removed their internal paddings to match the styling that QtQuick apps always had. And that's not going to be reverted, sorry. :) In fact it's a good thing because now people who do like borders can simply turn them on in the window decoration theme and have consistent internal margins everywhere, rather than internal margins that are bigger for QtWidgets apps compared to QtQuick apps.

Anyway, let's make this bug report about the real issue, which is the panel not casting a shadow like it should.
Comment 4 Nate Graham 2023-12-05 21:30:43 UTC
Can you see if it's Bug 477884?
Comment 5 Jakob Petsovits 2023-12-05 21:42:03 UTC
(In reply to Nate Graham from comment #3)
> Anyway, let's make this bug report about the real issue, which is the panel
> not casting a shadow like it should.

So how are things supposed to work exactly then, how do I tell the difference? Windows with extra content underneath the panel get shadowed, and windows snapped to the panel have no shadow? Uniformly dropping shadows on all windows wouldn't resolve the issue I raised in the original comment.

> Can you see if it's Bug 477884?

I can confirm that floating the panel will add a little shadow, and de-floating it without Plasma restart retains the same shadow. It seems likely that my screenshot was affected by Bug 477884, given the complete absence of shadows.

I can not confirm that we're talking about the same issue, because I'm still looking for a distinction between snapped vs. partially covered. And while you're right that removing excessive frames in Qt 6 based apps exacerbates the issue, I'd also like to point out that my reproduction steps & screenshot feature Firefox, which is independent from all of those happenings. What I'm after here is really to be able to tell if I can see the bottom of any window.
Comment 6 Nate Graham 2023-12-07 18:49:14 UTC
With Bug 477884 fixed, all windows touching the panel--snapped, maximized, or otherwise--should get a little shadow cast on them. Can you confirm that? It's intended that the shadow is the visual marker for the bottom of a window that's touching a bottom panel.
Comment 7 Bug Janitor Service 2023-12-22 03:46:06 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 8 Jakob Petsovits 2023-12-23 01:20:25 UTC
(In reply to Nate Graham from comment #6)
> With Bug 477884 fixed, all windows touching the panel--snapped, maximized,
> or otherwise--should get a little shadow cast on them. Can you confirm that?
> It's intended that the shadow is the visual marker for the bottom of a
> window that's touching a bottom panel.

Yes, the shadow is back. It looks good. It also doesn't fix the issue I described. I'd like to rename the bug back to its original title or something like it.

Let me try explaining it with a screenshot quiz because the original textual description apparently didn't convey it well enough. (Now that KAuth is working for me again, I have Spectacle back at least on the X11 session.) I will attach two screenshots with Firefox showing this bug report page.

a) In one screenshot, the Firefox window is much taller than the actual screen at hand. (The captured screen is my bottom screen, I dragged it down from my much taller monitor.)
b) In the other screenshot, the bottom of the Firefox window is snapped to the panel edge, so the entirety of its view is on screen.

Which is which?

(This is a trick question. The answer is you cannot tell. My problem with the window presentation is that there isn't a noticeable difference between seeing the entire window or having it cut off underneath the panel.)
Comment 9 Jakob Petsovits 2023-12-23 01:21:15 UTC
Created attachment 164377 [details]
one of the two screenshots mentioned above (which one?)
Comment 10 Jakob Petsovits 2023-12-23 01:21:58 UTC
Created attachment 164378 [details]
another one of the two screenshots mentioned above (which one?)
Comment 11 Jakob Petsovits 2023-12-23 01:51:58 UTC
I logged into the wrong X11 session (KF5) and that's why Spectacle worked. But with shadows restored, the window's bottom edge appears to look identical to the screenshots I took. So I still stand to everything I wrote above.
Comment 12 Nate Graham 2024-01-09 23:49:44 UTC
Indeed, you can't tell which of the two screenshots depicts Firefox cut off at the bottom and which one depicts it touching the panel. But this is Firefox's fault for not showing a scrollbar. If you try again with a proper app that makes its scrollbar always visible (or make Firefox always show its scrollbar) it will be more obvious which instance one goes under the panel which one doesn't.

Beyond that, I'm not sure there's anything else to do here. Both screenshots depict the intended appearance--which was also the appearance in Plasma 5.