Commit 4c0b7333df1d53992a69d3e35485678d2462e7dd
1 parent
b2f7d539
Exists in
master
and in
1 other branch
Disabling "save-settings" signal on every toggle change for performance
reasons.
Showing
7 changed files
with
12 additions
and
10 deletions
Show diff stats
src/include/terminal.h
@@ -152,7 +152,6 @@ G_BEGIN_DECLS | @@ -152,7 +152,6 @@ G_BEGIN_DECLS | ||
152 | int scaled_fonts : 1; /// @brief Use scaled fonts | 152 | int scaled_fonts : 1; /// @brief Use scaled fonts |
153 | int drawing : 1; /// @brief Draw widget? | 153 | int drawing : 1; /// @brief Draw widget? |
154 | int freeze : 1; /// @brief Truee when the "save settings" signal is disabled. | 154 | int freeze : 1; /// @brief Truee when the "save settings" signal is disabled. |
155 | - int save_settings : 1; /// @brief The settings were changed. | ||
156 | 155 | ||
157 | /// @brief Action properties. | 156 | /// @brief Action properties. |
158 | GtkResponseType responses[V3270_TOGGLEABLE_DIALOG_CUSTOM]; | 157 | GtkResponseType responses[V3270_TOGGLEABLE_DIALOG_CUSTOM]; |
src/terminal/callbacks.c
@@ -87,10 +87,6 @@ static gboolean bg_update_message(H3270 *session) | @@ -87,10 +87,6 @@ static gboolean bg_update_message(H3270 *session) | ||
87 | ); | 87 | ); |
88 | 88 | ||
89 | //trace("-----B %s %p",__FUNCTION__, lib3270_get_user_data(session)); | 89 | //trace("-----B %s %p",__FUNCTION__, lib3270_get_user_data(session)); |
90 | - | ||
91 | - if(terminal->save_settings) | ||
92 | - v3270_emit_save_settings(GTK_WIDGET(terminal)); | ||
93 | - | ||
94 | return FALSE; | 90 | return FALSE; |
95 | } | 91 | } |
96 | 92 |
src/terminal/font/properties.c
@@ -122,6 +122,7 @@ LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name) | @@ -122,6 +122,7 @@ LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name) | ||
122 | 122 | ||
123 | void v3270_notify_setting(GtkWidget *widget, V3270_SETTING id) | 123 | void v3270_notify_setting(GtkWidget *widget, V3270_SETTING id) |
124 | { | 124 | { |
125 | + debug("%s(%u)",__FUNCTION__,(unsigned int) id); | ||
125 | g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[id]); | 126 | g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[id]); |
126 | v3270_emit_save_settings(widget); | 127 | v3270_emit_save_settings(widget); |
127 | } | 128 | } |
src/terminal/keyboard/keyfile.c
@@ -65,7 +65,7 @@ | @@ -65,7 +65,7 @@ | ||
65 | if(!key) | 65 | if(!key) |
66 | return; | 66 | return; |
67 | 67 | ||
68 | - debug("%s=%s",v3270_accelerator_get_name(accel),keys); | 68 | +// debug("%s=%s",v3270_accelerator_get_name(accel),keys); |
69 | 69 | ||
70 | g_key_file_set_string( | 70 | g_key_file_set_string( |
71 | ((struct Args *) ptr)->key_file, | 71 | ((struct Args *) ptr)->key_file, |
@@ -130,7 +130,7 @@ | @@ -130,7 +130,7 @@ | ||
130 | return; | 130 | return; |
131 | } | 131 | } |
132 | 132 | ||
133 | - debug("Recreating accelerators for action \"%s\"",v3270_accelerator_get_name(accel)); | 133 | +// debug("Recreating accelerators for action \"%s\"",v3270_accelerator_get_name(accel)); |
134 | 134 | ||
135 | { | 135 | { |
136 | size_t ix; | 136 | size_t ix; |
@@ -190,6 +190,9 @@ | @@ -190,6 +190,9 @@ | ||
190 | if(!keys) | 190 | if(!keys) |
191 | return FALSE; | 191 | return FALSE; |
192 | 192 | ||
193 | + g_object_freeze_notify(G_OBJECT(widget)); | ||
194 | + terminal->freeze = 1; | ||
195 | + | ||
193 | size_t ix; | 196 | size_t ix; |
194 | for(ix = 0; keys[ix]; ix++) | 197 | for(ix = 0; keys[ix]; ix++) |
195 | { | 198 | { |
@@ -204,5 +207,8 @@ | @@ -204,5 +207,8 @@ | ||
204 | 207 | ||
205 | v3270_accelerator_map_sort(terminal); | 208 | v3270_accelerator_map_sort(terminal); |
206 | 209 | ||
210 | + g_object_thaw_notify(G_OBJECT(widget)); | ||
211 | + terminal->freeze = 0; | ||
212 | + | ||
207 | return TRUE; | 213 | return TRUE; |
208 | } | 214 | } |
src/terminal/keyfile.c
@@ -261,6 +261,7 @@ | @@ -261,6 +261,7 @@ | ||
261 | group_name = "terminal"; | 261 | group_name = "terminal"; |
262 | 262 | ||
263 | g_object_freeze_notify(G_OBJECT(widget)); | 263 | g_object_freeze_notify(G_OBJECT(widget)); |
264 | + terminal->freeze = 1; | ||
264 | 265 | ||
265 | // Load Toggles | 266 | // Load Toggles |
266 | for(ix = 0; ix < G_N_ELEMENTS(klass->properties.toggle); ix++) | 267 | for(ix = 0; ix < G_N_ELEMENTS(klass->properties.toggle); ix++) |
@@ -275,6 +276,7 @@ | @@ -275,6 +276,7 @@ | ||
275 | load_by_pspec(widget,klass->properties.settings[ix],key_file,group_name); | 276 | load_by_pspec(widget,klass->properties.settings[ix],key_file,group_name); |
276 | 277 | ||
277 | g_object_thaw_notify(G_OBJECT(widget)); | 278 | g_object_thaw_notify(G_OBJECT(widget)); |
279 | + terminal->freeze = 0; | ||
278 | 280 | ||
279 | return TRUE; | 281 | return TRUE; |
280 | } | 282 | } |
src/terminal/toggles.c
@@ -126,7 +126,6 @@ void v3270_update_toggle(GtkWidget *widget, LIB3270_TOGGLE_ID id, unsigned char | @@ -126,7 +126,6 @@ void v3270_update_toggle(GtkWidget *widget, LIB3270_TOGGLE_ID id, unsigned char | ||
126 | g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_TOGGLE_CHANGED], 0, (guint) id, (gboolean) (value != 0), (gchar *) name); | 126 | g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_TOGGLE_CHANGED], 0, (guint) id, (gboolean) (value != 0), (gchar *) name); |
127 | 127 | ||
128 | // Can't emit the signal on every toggle change because, sometimes, the saving of the settings file takes time. | 128 | // Can't emit the signal on every toggle change because, sometimes, the saving of the settings file takes time. |
129 | - GTK_V3270(widget)->save_settings = 1; | ||
130 | // v3270_emit_save_settings(widget); | 129 | // v3270_emit_save_settings(widget); |
131 | 130 | ||
132 | } | 131 | } |
src/terminal/widget.c
@@ -493,6 +493,7 @@ static void v3270_init(v3270 *widget) | @@ -493,6 +493,7 @@ static void v3270_init(v3270 *widget) | ||
493 | 493 | ||
494 | widget->host = lib3270_session_new(NULL); | 494 | widget->host = lib3270_session_new(NULL); |
495 | lib3270_set_user_data(widget->host,widget); | 495 | lib3270_set_user_data(widget->host,widget); |
496 | + lib3270_set_url(widget->host,NULL); | ||
496 | 497 | ||
497 | // Install callbacks | 498 | // Install callbacks |
498 | v3270_install_callbacks(widget); | 499 | v3270_install_callbacks(widget); |
@@ -789,8 +790,6 @@ LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget) | @@ -789,8 +790,6 @@ LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget) | ||
789 | static gboolean bg_emit_save_settings(v3270 *terminal) | 790 | static gboolean bg_emit_save_settings(v3270 *terminal) |
790 | { | 791 | { |
791 | terminal->freeze = 0; | 792 | terminal->freeze = 0; |
792 | - terminal->save_settings = 0; | ||
793 | - | ||
794 | g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); | 793 | g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); |
795 | g_object_unref(terminal); | 794 | g_object_unref(terminal); |
796 | return FALSE; | 795 | return FALSE; |