[gnome-shell/gnome-3-38] shell/app: Only release window ref when we are done



commit b5687374fce18f459702d82bd123b2c23401836a
Author: Florian Müllner <fmuellner gnome org>
Date:   Sun Mar 14 00:10:56 2021 +0100

    shell/app: Only release window ref when we are done
    
    We hold a reference to all windows we track for the app. While that
    reference is unlikely to be the last remaining one, we still shouldn't
    release it until we are done with the window.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>
    (cherry picked from commit 0cf22f4a1b172763c7c98e86ff3f4064305bba40)

 src/shell-app.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/src/shell-app.c b/src/shell-app.c
index 6cf4cbaf6a..78d5174997 100644
--- a/src/shell-app.c
+++ b/src/shell-app.c
@@ -1111,13 +1111,14 @@ _shell_app_remove_window (ShellApp   *app,
   g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_unmanaged), app);
   g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_user_time_changed), app);
   g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_skip_taskbar_changed), app);
-  g_object_unref (window);
   app->running_state->windows = g_slist_remove (app->running_state->windows, window);
 
   if (!meta_window_is_skip_taskbar (window))
     app->running_state->interesting_windows--;
   shell_app_sync_running_state (app);
 
+  g_object_unref (window);
+
   if (app->running_state->windows == NULL)
     g_clear_pointer (&app->running_state, unref_running_state);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]