[vte/vte-0-54] widget: Disconnect GtkSettings signals in destructor



commit 7487c22f231b38295fc0ea008a83e42f0c0c0244
Author: Egmont Koblinger <egmont gmail com>
Date:   Sun Dec 9 22:20:29 2018 +0100

    widget: Disconnect GtkSettings signals in destructor
    
    This fixes a crash when the cursor blink settings are modified
    after a terminal exits.
    
    https://gitlab.gnome.org/GNOME/vte/issues/77
    (cherry picked from commit 76c7dcab5ea80ca3fc6338765eaf7a49b4833b56)

 src/vte.cc    | 4 ----
 src/widget.cc | 5 +++++
 2 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index bdae253d..1bebc073 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -8425,10 +8425,6 @@ Terminal::~Terminal()
                g_object_unref(m_vadjustment);
        }
 
-        g_signal_handlers_disconnect_matched (gtk_widget_get_settings(m_widget), G_SIGNAL_MATCH_DATA,
-                                              0, 0, NULL, NULL,
-                                              this);
-
         /* Update rects */
         g_array_free(m_update_rects, TRUE /* free segment */);
 }
diff --git a/src/widget.cc b/src/widget.cc
index deaf789d..331ddba9 100644
--- a/src/widget.cc
+++ b/src/widget.cc
@@ -103,6 +103,11 @@ Widget::Widget(VteTerminal* t) noexcept :
 
 Widget::~Widget() noexcept
 {
+        g_signal_handlers_disconnect_matched(gtk_widget_get_settings(m_widget),
+                                             G_SIGNAL_MATCH_DATA,
+                                             0, 0, NULL, NULL,
+                                             this);
+
         m_widget = nullptr;
 
         m_terminal->~Terminal();


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