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,7 +765,9 @@ LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget) | ||
| 765 | 765 | ||
| 766 | static gboolean bg_emit_save_settings(GObject *widget) | 766 | static gboolean bg_emit_save_settings(GObject *widget) |
| 767 | { | 767 | { |
| 768 | + GTK_V3270(widget)->freeze = 0; | ||
| 768 | g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); | 769 | g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); |
| 770 | + g_object_unref(widget); | ||
| 769 | return FALSE; | 771 | return FALSE; |
| 770 | } | 772 | } |
| 771 | 773 | ||
| @@ -773,6 +775,10 @@ void v3270_emit_save_settings(GtkWidget *widget) | @@ -773,6 +775,10 @@ void v3270_emit_save_settings(GtkWidget *widget) | ||
| 773 | { | 775 | { |
| 774 | debug("%s(Freeze is %s)",__FUNCTION__,GTK_V3270(widget)->freeze ? "ON" : "OFF"); | 776 | debug("%s(Freeze is %s)",__FUNCTION__,GTK_V3270(widget)->freeze ? "ON" : "OFF"); |
| 775 | if(widget && GTK_IS_V3270(widget) && !GTK_V3270(widget)->freeze) | 777 | if(widget && GTK_IS_V3270(widget) && !GTK_V3270(widget)->freeze) |
| 778 | + { | ||
| 779 | + g_object_ref(widget); | ||
| 780 | + GTK_V3270(widget)->freeze = 1; | ||
| 776 | g_idle_add((GSourceFunc) bg_emit_save_settings, G_OBJECT(widget)); | 781 | g_idle_add((GSourceFunc) bg_emit_save_settings, G_OBJECT(widget)); |
| 782 | + } | ||
| 777 | } | 783 | } |
| 778 | 784 |