GNOME Bugzilla – Bug 782381
Qt application buttons blink randomly after being pressed
Last modified: 2018-07-31 11:43:20 UTC
Created attachment 351429 [details] Notice how the buttons are all in different animation states, despite the fact only one should be different. I tried this with Qt 5.7.1 (supports xdg_shell-v5 -> falls back to wl_*) and Qt 5.9 beta (supports xdg_shell-v5) under Fedora 26 with GNOME 3.24.1-1 and GTK 3.22.12-2. An example application to test this could be KCalc, which has a lot of buttons and other elements which exhibit this behavior (especially when switched to the scientific mode). You can run most Qt (and KDE) apps by running "<app> -platform wayland" or by setting QT_QPA_PLATFORM=wayland When you start clicking the buttons, you will notice the other buttons (that you have previously clicked) change the color too, at random, to some other animation state they had at some point in the past. This does not occur in any other compositor which leads me to believe this is Mutter-related. My description may be too confusing so in case you don't understand, please let me know and I'll try to explain it in different words.
An example would be this, after running "kcalc -platform wayland -style windows" (windows style because everything is strictly rectangular and there are no animations): Clicking a button (after clicking a bunch of some other ones) brings these calls: [1494378.107] wl_pointer@9.button(397536, 782737878, 272, 0) [1494378.648] -> wl_surface@19.frame(new id wl_callback@26) [1494378.674] -> wl_surface@19.attach(wl_buffer@25, 0, 0) [1494378.684] -> wl_surface@19.damage(382, 393, 57, 47) [1494378.704] -> wl_surface@19.commit() [1494379.485] -> wl_surface@19.frame(new id wl_callback@30) [1494379.498] -> wl_surface@19.attach(wl_buffer@29, 0, 0) [1494379.507] -> wl_surface@19.damage(16, 72, 706, 57) [1494379.517] -> wl_surface@19.commit() [1494394.331] wl_display@1.delete_id(30) [1494394.355] wl_display@1.delete_id(26) [1494394.360] wl_buffer@25.release() [1494394.363] wl_buffer@29.release() [1494394.366] wl_callback@30.done(782737894) However, at the same time, a button at the area (443, 393, 57, 96) was not damaged for a couple of seconds but it gets repainted along with these two areas (the button that was clicked and the display area).
I tried running the app in a proxy Wayland server (a modified test from KWayland), saving the state of all the Wayland buffers along the way and all the buffers was perfect, without any glitches, which indicates this probably actually is a Mutter bug.
Closing this in favor of https://gitlab.gnome.org/GNOME/mutter/issues/199 as it has reproducers attached to the report.