From 7f18999022d170f37cd1433a86274e460935f3ea Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 20 Jan 2021 12:06:16 -0300 Subject: [PATCH] Fixing 'save-settings' on non realized terminal widget. --- src/terminal/widget.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/terminal/widget.c b/src/terminal/widget.c index 82e4e2a..632b499 100644 --- a/src/terminal/widget.c +++ b/src/terminal/widget.c @@ -868,20 +868,30 @@ LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget) static gboolean bg_emit_save_settings(v3270 *terminal) { GdkWindow * window = gtk_widget_get_window(GTK_WIDGET(terminal)); - gdk_window_set_cursor( - window, - GTK_V3270_GET_CLASS(terminal)->cursors[LIB3270_POINTER_WAITING] - ); - gdk_display_sync(gtk_widget_get_display(GTK_WIDGET(terminal))); + if(window) { - terminal->freeze = 0; - g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); + gdk_window_set_cursor( + window, + GTK_V3270_GET_CLASS(terminal)->cursors[LIB3270_POINTER_WAITING] + ); - gdk_window_set_cursor( - window, - NULL - ); + gdk_display_sync(gtk_widget_get_display(GTK_WIDGET(terminal))); + + terminal->freeze = 0; + g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); + + gdk_window_set_cursor( + window, + NULL + ); + + } else { + + terminal->freeze = 0; + g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); + + } g_object_unref(terminal); -- libgit2 0.21.2