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 | ... | ... |