Commit 4c0b7333df1d53992a69d3e35485678d2462e7dd

Authored by Perry Werneck
1 parent b2f7d539
Exists in master and in 1 other branch develop

Disabling "save-settings" signal on every toggle change for performance

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