Commit bbe7e969bdf0cebf25b6e921ea4ebfdd95dcea8c
1 parent
c1d9f910
Exists in
master
and in
1 other branch
Another adjustment to prevent multiple save-settings signals.
Showing
1 changed file
with
6 additions
and
0 deletions
Show diff stats
src/terminal/widget.c
... | ... | @@ -765,7 +765,9 @@ LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget) |
765 | 765 | |
766 | 766 | static gboolean bg_emit_save_settings(GObject *widget) |
767 | 767 | { |
768 | + GTK_V3270(widget)->freeze = 0; | |
768 | 769 | g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); |
770 | + g_object_unref(widget); | |
769 | 771 | return FALSE; |
770 | 772 | } |
771 | 773 | |
... | ... | @@ -773,6 +775,10 @@ void v3270_emit_save_settings(GtkWidget *widget) |
773 | 775 | { |
774 | 776 | debug("%s(Freeze is %s)",__FUNCTION__,GTK_V3270(widget)->freeze ? "ON" : "OFF"); |
775 | 777 | if(widget && GTK_IS_V3270(widget) && !GTK_V3270(widget)->freeze) |
778 | + { | |
779 | + g_object_ref(widget); | |
780 | + GTK_V3270(widget)->freeze = 1; | |
776 | 781 | g_idle_add((GSourceFunc) bg_emit_save_settings, G_OBJECT(widget)); |
782 | + } | |
777 | 783 | } |
778 | 784 | ... | ... |