[KDE] Flash happens & Application menu popup moves briefly to the left when hovering over "List all tabs" and an extension buttons
Categories
(Core :: Widget: Gtk, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox109 | --- | fixed |
People
(Reporter: mystiquewolf, Assigned: stransky)
References
(Blocks 1 open bug)
Details
Attachments
(2 files)
Haven't noticed it before, not sure if regression with Firefox 101.
Martin, i think this is potentially Gtk/Wayland bug, what logs/command outputs might help?
Assignee | ||
Comment 1•3 years ago
|
||
Yes, looks like Wayland issue. Please test latest nightly, it may be Bug 1771104 which is already fixed.
Thanks.
Assignee | ||
Updated•3 years ago
|
Reporter | ||
Comment 2•3 years ago
|
||
Still happens in Nightly build 20220601213138
Reporter | ||
Comment 3•3 years ago
|
||
I have a feeling these two might be related somehow: https://bugzilla.mozilla.org/show_bug.cgi?id=1768177#a515172_584718
Assignee | ||
Comment 4•3 years ago
|
||
Okay, Thanks. Please create a screencast and attach it here:
https://fedoraproject.org/wiki/How_to_debug_Firefox_problems#Collect_information_for_a_bug_report
Thanks.
Assignee | ||
Comment 5•3 years ago
|
||
Ah, I see you did that already, thanks.
Assignee | ||
Comment 6•3 years ago
|
||
Do I understand correctly that the flashing window is a tooltip which is supposed to be opened under the extension icon?
Assignee | ||
Comment 7•3 years ago
|
||
Also which distro/desktop do you run?
Reporter | ||
Comment 8•3 years ago
|
||
Operating System: Arch Linux
KDE Plasma Version: 5.24.5
KDE Frameworks Version: 5.94.0
Qt Version: 5.15.4
The flashing window as far as i can see that fast - is the application menu which moves for part of the second to the leftmost edge of the screen and then returns back.
Assignee | ||
Comment 9•3 years ago
|
||
Can you try mutter compositor?
https://fedoraproject.org/wiki/How_to_debug_Firefox_problems#Testing_different_Wayland_compositor
Thanks.
Reporter | ||
Comment 10•3 years ago
|
||
Couldn't reproduce it in mutter, and it reproduces easily in KDE.
Is there really no way to start mutter window bigger than this small size? ¯(©¿©) /¯
Assignee | ||
Comment 11•3 years ago
|
||
Yes, you can use 'Running nested as a subcompositor' steps from
https://wiki.gnome.org/Initiatives/Wayland/GnomeShell/Testing
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Comment 13•3 years ago
|
||
I've seen this bug report (open the context menu and hover any firefox ui element so a popup appears), but didn't dig into it. Will debug it.
Comment 14•3 years ago
|
||
Whenever a new popup is shown, the subsurface for context menu is destroyed and created again. Can firefox avoid doing that?
Assignee | ||
Comment 15•3 years ago
|
||
I think that comes from Gtk where we re-map the popup. Will look at it.
Assignee | ||
Comment 16•3 years ago
|
||
Vlad, I tested the most simple scenario:
- open hamburger menu and keep it opened
- move mouse cursor to some icon and keep Firefox to create tooltip over it
- quit
and it's reproducible in 30% cases.
In such scenario no subsurface is deleted - we just create a popup (hamburger), create another popup (tooltip) and make it child of hamburger.
I don't see any subsurface manipulation/delete so it looks like KDE bug to me, especially when hamburger popup is misplaced but Firefox doesn't touch it.
(I use MOZ_LOG="WidgetWayland:5 WidgetPopup:5" env variable to print popup & wayland operations initiated by FF).
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 19•2 years ago
|
||
The subsurface delete comes from gdk_wayland_window_set_transient_for() - it unmaps the subsurface in case we use subsurface popup type.
While I can try to switch tooltips to XDG popup types, this code comes from Gtk3 and may be used by other applications.
Assignee | ||
Comment 20•2 years ago
•
|
||
Okay I think I understand it now. gdk_wayland_window_set_transient_for() does not check if previous parent is the same and deletes the subsurface even when nothing changes. So we need to call gdk_wayland_window_set_transient_for() of if there's a change to avoid the unmap.
Assignee | ||
Updated•2 years ago
|
Comment 21•2 years ago
|
||
Sounds like it can be fixed by adding an if statement \o/
Assignee | ||
Comment 22•2 years ago
|
||
Comment 23•2 years ago
|
||
Comment 24•2 years ago
|
||
bugherder |
Description
•