fix crash after detaching tab and then changing its title
fixes https://github.com/mate-desktop/mate-terminal/issues/131 thanks to @egmontkob for the patch: https://git.gnome.org/browse/gnome-terminal/commit/?id=f65261a0b5d03658be3acb439976fd8af6fa28eamaster-1.22
parent
8fdadba380
commit
448be7a26f
|
@ -150,6 +150,23 @@ terminal_tab_label_constructor (GType type,
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
terminal_tab_label_dispose (GObject *object)
|
||||||
|
{
|
||||||
|
TerminalTabLabel *tab_label = TERMINAL_TAB_LABEL (object);
|
||||||
|
TerminalTabLabelPrivate *priv = tab_label->priv;
|
||||||
|
|
||||||
|
if (priv->screen != NULL) {
|
||||||
|
g_signal_handlers_disconnect_by_func (priv->screen,
|
||||||
|
G_CALLBACK (sync_tab_label),
|
||||||
|
priv->label);
|
||||||
|
g_object_unref (priv->screen);
|
||||||
|
priv->screen = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (terminal_tab_label_parent_class)->dispose (object);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
terminal_tab_label_finalize (GObject *object)
|
terminal_tab_label_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
|
@ -170,7 +187,7 @@ terminal_tab_label_set_property (GObject *object,
|
||||||
switch (prop_id)
|
switch (prop_id)
|
||||||
{
|
{
|
||||||
case PROP_SCREEN:
|
case PROP_SCREEN:
|
||||||
priv->screen = g_value_get_object (value);
|
priv->screen = g_value_dup_object (value);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
@ -185,6 +202,7 @@ terminal_tab_label_class_init (TerminalTabLabelClass *klass)
|
||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||||
|
|
||||||
gobject_class->constructor = terminal_tab_label_constructor;
|
gobject_class->constructor = terminal_tab_label_constructor;
|
||||||
|
gobject_class->dispose = terminal_tab_label_dispose;
|
||||||
gobject_class->finalize = terminal_tab_label_finalize;
|
gobject_class->finalize = terminal_tab_label_finalize;
|
||||||
gobject_class->set_property = terminal_tab_label_set_property;
|
gobject_class->set_property = terminal_tab_label_set_property;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue