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 | 152 | int scaled_fonts : 1; /// @brief Use scaled fonts |
153 | 153 | int drawing : 1; /// @brief Draw widget? |
154 | 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 | 156 | /// @brief Action properties. |
158 | 157 | GtkResponseType responses[V3270_TOGGLEABLE_DIALOG_CUSTOM]; | ... | ... |
src/terminal/callbacks.c
... | ... | @@ -87,10 +87,6 @@ static gboolean bg_update_message(H3270 *session) |
87 | 87 | ); |
88 | 88 | |
89 | 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 | 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 | 122 | |
123 | 123 | void v3270_notify_setting(GtkWidget *widget, V3270_SETTING id) |
124 | 124 | { |
125 | + debug("%s(%u)",__FUNCTION__,(unsigned int) id); | |
125 | 126 | g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[id]); |
126 | 127 | v3270_emit_save_settings(widget); |
127 | 128 | } | ... | ... |
src/terminal/keyboard/keyfile.c
... | ... | @@ -65,7 +65,7 @@ |
65 | 65 | if(!key) |
66 | 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 | 70 | g_key_file_set_string( |
71 | 71 | ((struct Args *) ptr)->key_file, |
... | ... | @@ -130,7 +130,7 @@ |
130 | 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 | 136 | size_t ix; |
... | ... | @@ -190,6 +190,9 @@ |
190 | 190 | if(!keys) |
191 | 191 | return FALSE; |
192 | 192 | |
193 | + g_object_freeze_notify(G_OBJECT(widget)); | |
194 | + terminal->freeze = 1; | |
195 | + | |
193 | 196 | size_t ix; |
194 | 197 | for(ix = 0; keys[ix]; ix++) |
195 | 198 | { |
... | ... | @@ -204,5 +207,8 @@ |
204 | 207 | |
205 | 208 | v3270_accelerator_map_sort(terminal); |
206 | 209 | |
210 | + g_object_thaw_notify(G_OBJECT(widget)); | |
211 | + terminal->freeze = 0; | |
212 | + | |
207 | 213 | return TRUE; |
208 | 214 | } | ... | ... |
src/terminal/keyfile.c
... | ... | @@ -261,6 +261,7 @@ |
261 | 261 | group_name = "terminal"; |
262 | 262 | |
263 | 263 | g_object_freeze_notify(G_OBJECT(widget)); |
264 | + terminal->freeze = 1; | |
264 | 265 | |
265 | 266 | // Load Toggles |
266 | 267 | for(ix = 0; ix < G_N_ELEMENTS(klass->properties.toggle); ix++) |
... | ... | @@ -275,6 +276,7 @@ |
275 | 276 | load_by_pspec(widget,klass->properties.settings[ix],key_file,group_name); |
276 | 277 | |
277 | 278 | g_object_thaw_notify(G_OBJECT(widget)); |
279 | + terminal->freeze = 0; | |
278 | 280 | |
279 | 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 | 126 | g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_TOGGLE_CHANGED], 0, (guint) id, (gboolean) (value != 0), (gchar *) name); |
127 | 127 | |
128 | 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 | 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 | 493 | |
494 | 494 | widget->host = lib3270_session_new(NULL); |
495 | 495 | lib3270_set_user_data(widget->host,widget); |
496 | + lib3270_set_url(widget->host,NULL); | |
496 | 497 | |
497 | 498 | // Install callbacks |
498 | 499 | v3270_install_callbacks(widget); |
... | ... | @@ -789,8 +790,6 @@ LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget) |
789 | 790 | static gboolean bg_emit_save_settings(v3270 *terminal) |
790 | 791 | { |
791 | 792 | terminal->freeze = 0; |
792 | - terminal->save_settings = 0; | |
793 | - | |
794 | 793 | g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); |
795 | 794 | g_object_unref(terminal); |
796 | 795 | return FALSE; | ... | ... |