Unbalanced enable/disable of unredirection after !721
In merge !721 (merged), a change was made to disable unredirection during transitions. Since upgrading to 3.34, I've noticed that after launching an application, unredirection is disabled and stays disabled. I then did some digging, and what I see is a unbalanced sequence of enable/disable calls happening from _easeActor
and the corresponding cleanup callback, as shown in the following logging (which I added - it tracks when _easeActor
is called, when each cleanup() callback is called, and when transitions are removed by _easeActor
Oct 13 10:56:44 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b4759220 Gjs_AppMenuButton.panel-button ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4759220 Gjs_AppMenuButton.panel-button ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: enable unredirect after easeActor:[0x55b6b4759220 Gjs_AppMenuButton.panel-button:insensitive first-child last-child ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b4759220 Gjs_AppMenuButton.panel-button:insensitive first-child last-child ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4759220 Gjs_AppMenuButton.panel-button:insensitive first-child last-child ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b7a78f80 MetaWindowActorX11]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b7a78f80 MetaWindowActorX11]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b7a78f80 MetaWindowActorX11]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b7a78f80 MetaWindowActorX11]
Oct 13 10:56:44 fido6 gnome-shell[22478]: enable unredirect after easeActor:[0x55b6b4759220 Gjs_AppMenuButton.panel-button:first-child last-child ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b4759220 Gjs_AppMenuButton.panel-button:first-child last-child ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4759220 Gjs_AppMenuButton.panel-button:first-child last-child ("Files")]
Oct 13 10:56:44 fido6 gnome-shell[22478]: enable unredirect after easeActor:[0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: enable unredirect after easeActor:[0x55b6b7a78f80 MetaWindowActorX11]
Oct 13 10:56:44 fido6 gnome-shell[22478]: enable unredirect after easeActor:[0x55b6b4765430 StBin:last-child]
Oct 13 10:56:44 fido6 gnome-shell[22478]: enable unredirect after easeActor:[0x55b6b4759220 Gjs_AppMenuButton.panel-button:first-child last-child ("Files")]
Oct 13 10:56:46 fido6 gnome-shell[22478]: disable unredirect in easeActor: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:46 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:46 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:46 fido6 gnome-shell[22478]: removing transition for: [0x55b6b4765430 StBin:last-child]
Oct 13 10:56:46 fido6 gnome-shell[22478]: enable unredirect after easeActor:[0x55b6b4765430 StBin:last-child]
We see that there is an unbalanced disable on the StBin:last-child
with no corresponding enable. I have not dug enough to understand which entity this last-child
is, but this sequence happens regardless of how I start an application from a desktop file (from the overview, from dash-to-dock, from kupfer, etc). Launching an application from a terminal doesn't trigger the problem.
At a glance I want to say the problem might be that _easeActor
is called a second time on an actor before the first call's cleanup takes place, the transition the cleanup is attached to gets removed, and so the stopped
signal never fires. I could easily be wrong - maybe stopped
still fires and the cause is something else.