blur-my-shell
blur-my-shell copied to clipboard
Fix `Main.panel` crash on log out
- Added a listener for
destroy, so thatMain.panelis not called after that event. - Added protections against reentrancy for
enable(),disable()andreset()methods. - Fixes #782.
- Ensure actors are destroyed in
CoverflowAltTabBlur.
Here are the logs after this change:
Debug Logs
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > extension] enabling extension...
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > lockscreen] blurring lockscreen
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > extension] changing mode to user session...
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > overview] blurring overview
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > dash manager] searching for dash
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > panel] blurring top panel
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > panel] resetting...
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > panel] removing blur from top panel
set 07 00:13:57 marmis-arch gnome-shell[39106]: [Blur my Shell > panel] blurring top panel
set 07 00:13:58 marmis-arch gnome-shell[39106]: [Blur my Shell > appfolders] blurring appfolders
set 07 00:13:58 marmis-arch gnome-shell[39106]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:13:58 marmis-arch gnome-shell[39106]: [Blur my Shell > window list] blurring window list
set 07 00:13:58 marmis-arch gnome-shell[39106]: [Blur my Shell > coverflow alt-tab] blurring coverflow alt-tab
set 07 00:13:58 marmis-arch gnome-shell[39106]: [Blur my Shell > screenshot] blurring screenshot's window selector
set 07 00:13:58 marmis-arch gnome-shell[39106]: [Blur my Shell > extension] all components enabled.
set 07 00:14:06 marmis-arch gnome-shell[39106]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:06 marmis-arch gnome-shell[39106]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:07 marmis-arch gnome-shell[39106]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:07 marmis-arch gnome-shell[39106]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:17 marmis-arch gnome-shell[39106]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:30 marmis-arch gnome-shell[39106]: [Blur my Shell > panel] cannot update light text classname, Main.panel is not alive
set 07 00:14:41 marmis-arch gnome-shell[40963]: [Blur my Shell > extension] enabling extension...
set 07 00:14:41 marmis-arch gnome-shell[40963]: [Blur my Shell > lockscreen] blurring lockscreen
set 07 00:14:41 marmis-arch gnome-shell[40963]: [Blur my Shell > extension] changing mode to user session...
set 07 00:14:41 marmis-arch gnome-shell[40963]: [Blur my Shell > overview] blurring overview
set 07 00:14:41 marmis-arch gnome-shell[40963]: [Blur my Shell > dash manager] searching for dash
set 07 00:14:41 marmis-arch gnome-shell[40963]: [Blur my Shell > panel] blurring top panel
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > panel] resetting...
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > panel] removing blur from top panel
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > panel] blurring top panel
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > appfolders] blurring appfolders
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > window list] blurring window list
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > coverflow alt-tab] blurring coverflow alt-tab
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > screenshot] blurring screenshot's window selector
set 07 00:14:42 marmis-arch gnome-shell[40963]: [Blur my Shell > extension] all components enabled.
set 07 00:14:50 marmis-arch gnome-shell[40963]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:50 marmis-arch gnome-shell[40963]: [Blur my Shell > appfolders] appfolders hack level 1
set 07 00:14:51 marmis-arch gnome-shell[40963]: [Blur my Shell > appfolders] appfolders hack level 1
You can see in the logs "cannot update light text classname, Main.panel is not alive", so it still tries to update the Main.panel style, but the flag protects against it.
I also tried to make disable() run before Main.panel::destroy, but I don't think it's possible, at least not on GNOME 49.rc. The order of events on log out seems to be Main.panel::destroy => global.display::workareas-changed => Extension.disable.