Blob Blame History Raw
From 668e0673a7ea3fe4cb6c99bc7b56bc52597e2061 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Wed, 25 Sep 2019 09:16:44 +0200
Subject: [PATCH] window: Fix criticals when moving file to trash

The "gtk_revealer_get_transition_type: assertion 'GTK_IS_REVEALER (revealer)'
failed" critical is printed when moving file to trash after closing a window.
This is because the "undo-changed" signal handler is not disconnected when
the window is destroyed. Let's use g_signal_connect_object() to ensure
disconnection and prevent those criticals.

Fixes: https://gitlab.gnome.org/GNOME/nautilus/issues/1076
---
 src/nautilus-window.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 285a6a6ce..056c75c7a 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -2239,8 +2239,9 @@ nautilus_window_constructed (GObject *self)
     nautilus_window_set_up_sidebar (window);
 
 
-    g_signal_connect_after (nautilus_file_undo_manager_get (), "undo-changed",
-                            G_CALLBACK (nautilus_window_on_undo_changed), self);
+    g_signal_connect_object (nautilus_file_undo_manager_get (), "undo-changed",
+                             G_CALLBACK (nautilus_window_on_undo_changed), self,
+                             G_CONNECT_AFTER);
 
     /* Is required that the UI is constructed before initializating the actions, since
      * some actions trigger UI widgets to show/hide. */
-- 
2.23.0