| Summary: | Moving windows with super+lclick is allowed when a context menu is open on Wayland | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Oliver Beard <olib141> |
| Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED INTENTIONAL | ||
| Severity: | normal | CC: | nate |
| Priority: | NOR | Keywords: | wayland-only |
| Version First Reported In: | 5.24.4 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
Unfocused system settings moved with a menu open. The menu has decorations as it was opened with the window unfocused.
Focused system settings moved with a menu open, the application has been painted unfocused though it is focused. KWrite moved underneath an open context menu, showing the displacement of click targets Broken painting in kwrite from experimenting with the bug |
||
|
Description
Oliver Beard
2022-04-03 04:55:18 UTC
Created attachment 147914 [details]
Unfocused system settings moved with a menu open. The menu has decorations as it was opened with the window unfocused.
Created attachment 147915 [details]
Focused system settings moved with a menu open, the application has been painted unfocused though it is focused.
Created attachment 147916 [details]
KWrite moved underneath an open context menu, showing the displacement of click targets
Created attachment 147917 [details]
Broken painting in kwrite from experimenting with the bug
Because adding attachments is done one at a time, and each one sends an email, here's an imgur album with various screenshots: https://imgur.com/a/TFWRPK3 lol. I think this not working on X11 was a bug, but now that it works on Wayland, it exposes a bunch more bugs that nobody thought to consider because moving a window with Meta+click while a window is open is a pretty uncommon thing to do. Might be a Qt issue. (In reply to Nate Graham from comment #6) Blocking moving the window is a reasonable solution to prevent things breaking in this manner, and probably the best thing to do for Wayland. Attempting to move a window whilst it has an open menu is not really a common action, and I'd guess that trying to fix the underlying logic to allow for this could be a very large can of worms. Popups detaching from the parent window was a bug and it was fixed. Some popups having decorations is also a bug, it has been partially fixed upstream in Qt. Regarding allowing moving windows with popups, this is rather intentional behavior, at least the xdg-shell spec doesn't dictate that the popups must be dismissed. On X11, things works differently because the popups usually grab input and the window manager needs to grab input in order to start interactive move resize session too. So that's why you can't move windows while there's a popup. (In reply to Vlad Zahorodnii from comment #8) > Popups detaching from the parent window was a bug and it was fixed. Some > popups having decorations is also a bug, it has been partially fixed > upstream in Qt. Yep, I'm happy to see this resolved! Only a few odd behaviours remain - such as popups not being moved to account for window resizing (we'll probably have to be cleverer in apps such as Dolphin), and popups not moving with their parent when fading out (closing). The last one is probably not possible to fix? That one is tricky because that is a closed window by that time. "such as popups not being moved to account for window resizing" kwin supports popup repositioning, Qt just needs to support that as well (In reply to Vlad Zahorodnii from comment #10) > That one is tricky because that is a closed window by that time. Indeed, perhaps it's possible to remember the parent and position accordingly? It's a very minor visual flaw though, and one that a user would rarely see or even realise. As for popups, I know in some apps (e.g. System Settings) we position the QMenu only at creation - though this *is* fine in System Settings as the left pane with the tool button can't be resized. |