Bug 483808 - On 24px thick horizontal non-floating fill-width panel, right-most widget is not clickable on rightmost row of pixels
Summary: On 24px thick horizontal non-floating fill-width panel, right-most widget is ...
Status: ASSIGNED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Panel (show other bugs)
Version: 6.0.2
Platform: openSUSE Linux
: NOR minor
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2024-03-17 04:19 UTC by pallaswept
Modified: 2024-12-13 12:01 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Video of bug (522.54 KB, video/webm)
2024-08-20 00:13 UTC, pallaswept
Details
Panel height 24 breaks it (719.68 KB, video/webm)
2024-08-20 22:49 UTC, pallaswept
Details

Note You need to log in before you can comment on or make changes to this bug.
Description pallaswept 2024-03-17 04:19:37 UTC
SUMMARY
***
TL;DR: a single row or column of pixels, at the edge of a panel, are unresponsive to mouse inputs to widgets.
I'll do my best to explain, but it might be easier to create a panel, put a widget on the end (right or bottom) of it, move it to each screen edge, and try and click it on its very end. You'll see it fail and get a feel for the problem pretty quick that way.

Type example: I have window control via a widget in my panel. Typically for window control, it is in the corner, so that a quick flick of the mouse always hits.... except with plasma 6, it seems like the widget never reaches the corner, it goes short by one pixel.

I tested this with a new empty panel, added an expanding spacer, and an application launcher to put in the corners for testing. I found that for floating panels, the end of the panel always works as expected (even when the panel is floating and the mouse is nowhere near the widget, which is cool and clever...). But, for non-floating panels:

* The entire top-left corner and surrounding pixel, work as expected

* The bottom-left corner pixel - only that ONE pixel - works. 
 - When the panel is vertical (left side), the subsequent pixels on the X axis (moving left-to-right along the bottom of the display) do not respond. Widgets act as if not hovered, and clicking does nothing. Right-clicking opens a menu as if blank space on the panel was clicked - it opens the panel's context menu.
 - When the panel is horizontal (bottom) those pixels do work.

* The top-right corner pixel - only that ONE pixel - works. 
 - When the panel is horizontal (top side), the subsequent pixels on the Y axis (moving top-to-bottom along the right edge of the display) do not respond. Widgets act as if not hovered, and clicking does nothing. Right-clicking opens a menu as if blank space on the panel was clicked - it opens the panel's context menu.
 - When the panel is vertical (right side) those pixels do work.

* The bottom-right corner pixel never works.
 - When the panel is vertical (right side), the subsequent pixels on the X axis (moving left-to-right along the bottom of the display) do not respond. Widgets act as if not hovered, and clicking does nothing. Right-clicking opens a menu as if blank space on the panel was clicked - it opens the panel's context menu.
 - When the panel is horizontal (bottom), the subsequent pixels on the Y axis (moving bottom-to-top along the right edge of the display) do not respond. Widgets act as if not hovered, and clicking does nothing. Right-clicking opens a menu as if blank space on the panel was clicked - it opens the panel's context menu.

Alignment does not have any effect (eg aligning a horizontal panel at the bottom edge, to the right, does not make the rightmost column of pixels work)

***


STEPS TO REPRODUCE
1. Create a traditional Windows-style bottom panel, with Application launcher in the bottom left corner, not floating.
2. Move mouse to bottom-left corner of the screen and click. Note that app launcher is activated.
3. Edit the panel to move the App Launcher to the far right hand side (bottom-right corner of the screen)
4. Move mouse to bottom-right corner of the screen and click... Note no activation of the launcher.
extra:
5. Edit panel and move it to the right side of the screen.
6. Click in the bottom-right corner. Note no activation of the launcher. Try one pixel above. Note that it works. Now try one pixel to the left. Note it does not respond.
7. Edit panel and move it to the left side of the screen.
8. Click in the bottom-left corner. Note that app launcher is activated. Now move the cursor one pixel to the right (it will still be on the bottom row of pixels, now one pixel in from the left). Click. Note no activation of the launcher.

OBSERVED RESULT
Cannot click on a widget in corners of the panel

EXPECTED RESULT
Corners :D

SOFTWARE/OS VERSIONS
Tumbleweed on kernel 6.7.9
KDE Plasma Version: 6.0.2
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2

ADDITIONAL INFORMATION
Aside from a few little things (I'll file bugs over time), a pretty smooth upgrade to 6, well done you all.
Comment 1 Nick 2024-03-23 18:21:30 UTC
Hi - thanks for reporting this. I've followed your instructions but on step 6 I find that the application launcher does open every time I click in the very bottom-right corner.

I wonder - do you have display scaling enabled? If so let me know, and could you also re-try with scaling at 100%?

Thanks.
Comment 2 pallaswept 2024-03-24 04:32:30 UTC
Hi Nick,

Cheers for looking at this for me. Sorry the repro steps failed!

I don't have scaling in use, but I do have dual monitors. The Primary is on the left, and is 540px lower than the secondary on the right. Here's my setup command for it:

kscreen-doctor \
output.HDMI-A-1.enable \
output.HDMI-A-1.primary \
output.HDMI-A-1.priority.1 \
output.HDMI-A-1.position.0,540 \
output.HDMI-A-1.mode.1920x1080@60 \
output.HDMI-A-1.rgbrange.full \
\
output.DP-1.enable \
output.DP-1.priority.2 \
output.DP-1.vrrpolicy.always \
output.DP-1.position.1920,0 \
output.DP-1.mode.2560x1440@144 \
output.DP-1.rgbrange.full
Comment 3 Nate Graham 2024-08-18 23:17:12 UTC
If it's still happening in Plasma 6.1.4 or later, can you say whether it's happening only on X11, or can you reproduce it on Wayland too?
Comment 4 pallaswept 2024-08-19 04:13:51 UTC
(In reply to Nate Graham from comment #3)
> If it's still happening in Plasma 6.1.4 or later, can you say whether it's
> happening only on X11, or can you reproduce it on Wayland too?

Hi Nate,

Wayland and X11.

Pretty sure Niccolo put this there to force everyone to use his fancy new floating doodad ;) I jest. The floating toolbar is really nice, I thought I would HATE it, and I really don't at all. So I still have that as a good workaround. 

Maybe a hint has appeared in the new panel menus: It seems like the widget isn't really using that last pixel of panel. If I right-click there, I get 'Add Widgets... / Show Panel Configuration' as though I clicked an empty area on the panel. 

If I choose Show Panel Configuration, toggle style to floating, and click Done, I now see a panel which appears identical (window is maximized, so, panel un-floats itself) but if I right-click in that same right-most column of pixels which previously gave me the panel's context menu, now it gives me the widget's context menu, as it should.

Hope that helps!
Comment 5 Niccolò Venerandi 2024-08-19 12:05:52 UTC
I'm guessing you have a fill-width panel? May I ask for a recording of you opening the context menu you mentioned?
Comment 6 pallaswept 2024-08-19 14:28:33 UTC
(In reply to Niccolò Venerandi from comment #5)
> I'm guessing you have a fill-width panel? 

Good guess!

> May I ask for a recording of you opening the context menu you mentioned?

I would love to, but something broke spectacle, it is recording empty files ;( I'll file a bug for it shortly. Would static screenshots be of any use?
Comment 7 pallaswept 2024-08-19 14:53:36 UTC
Sorry, I can't get you static screenshots either. I tried, OBS captured video OK, but the cursor never appears in OBS nor spectacle.

I think that's this otherwise unrelated issue: https://bugs.kde.org/show_bug.cgi?id=489952

If there's some other way I can help, just say the word.
Comment 8 pallaswept 2024-08-20 00:13:26 UTC
Created attachment 172765 [details]
Video of bug

Video of the bug. The first 30 seconds, it is a non-floating toolbar and exhibits the dead column of pixels on the right side. I use the 'Panel Spacer Extended' widget on the right end of the panel, it shows a grey colour in the panel, and a tooltip list, when the mouse hovers it.

Around the 30s mark I switch to floating toolbar and everything is working.

Thanks Nate for helping me pin down the recording issue. Spectacle is invaluable here.
Comment 9 Nate Graham 2024-08-20 21:55:54 UTC
With a fill-width, non-floating bottom panel on single or dual screen setups, I can't reproduce the issue of the right-most pixel column not triggering the right-most widget. Tested with that widget being Notes, Digital Clock, and Application Launcher. Maybe it's an issue with your specific widget? Does the issue still happen with first-party widgets like the ones I just mentioned?
Comment 10 pallaswept 2024-08-20 22:49:03 UTC
Created attachment 172794 [details]
Panel height 24 breaks it

Grey desktop is the monitor in question. The black areas around it are the other monitor to the right and the dead space above this one.

Note the top right corner pixel working either way, but 24 pixel height is the place where the right edge fails.

This was a new, empty panel, with one Icons-and-Text Task Manager to fill out the space, and one Application Launcher on the right corner.
Comment 11 pallaswept 2024-08-20 23:09:22 UTC
(In reply to Nate Graham from comment #9)
> Does the issue still happen with first-party widgets like the ones I just mentioned?

Great minds think alike. I thought this might be a problem with the third-party widget, so I tested it with the Application Launcher widget - same.

But once again you gave me a hint that led me to find the trick: Try a panel height of 24 or less. 26 and up should be OK. I've attached video showing this (also using your trick of having vkcube running to get a smooth capture, thanks!)

Hope this helps. In case you're wondering why random internet guy is using 24 panel height: It's (was? who cares, I have KDE now haha) the default windows toolbar height.

So, now I have two workarounds (use floating, or use 26px height), so I would say this is kinda low priority. I know you guys are heaps busy, I don't want to waste your time. Hopefully it's a quick'n'easy one. Thanks again.
Comment 12 Nate Graham 2024-08-21 15:20:44 UTC Comment hidden (spam)
Comment 13 Nate Graham 2024-08-21 15:21:29 UTC Comment hidden (spam)
Comment 14 Nate Graham 2024-08-21 16:24:18 UTC
Thanks, I can reproduce the issue at a panel height of exactly 24px. No more, no less!
Comment 15 TraceyC 2024-08-21 16:35:38 UTC
I can reproduce this on git-master. Simple reproduction steps:

This was easiest to reproduce on a laptop with just the internal display
1. Add / have a default panel. Position: right. Size: 24px
2. Move the kicker widget to the bottom and exit config and edit modes
3. Move the cursor to the bottom right hand corner of the screen
4. Click

Nothing happens. 
Additionally, the entire right side of the panel has a dead area of about 1px. No widgets respond to click or hover.

I was also able to reproduce the other behavior described in the original post.
Comment 16 TraceyC 2024-08-21 16:38:33 UTC
Note that not just the right most row of pixels is affected
Comment 17 Bug Janitor Service 2024-12-13 12:01:11 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4999