Commit 33cff6e713376fafb7d313086a013e24c413fd0f

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

Working on load/save settings engine.

src/include/terminal.h
@@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
33 33
34 G_BEGIN_DECLS 34 G_BEGIN_DECLS
35 35
  36 +/*
36 /// @brief V3270 Properties saved to the configuration file. 37 /// @brief V3270 Properties saved to the configuration file.
37 typedef enum 38 typedef enum
38 { 39 {
@@ -56,6 +57,7 @@ G_BEGIN_DECLS @@ -56,6 +57,7 @@ G_BEGIN_DECLS
56 } V3270_SETTING; 57 } V3270_SETTING;
57 58
58 G_GNUC_INTERNAL void v3270_notify_setting(GtkWidget *widget, V3270_SETTING id); 59 G_GNUC_INTERNAL void v3270_notify_setting(GtkWidget *widget, V3270_SETTING id);
  60 +*/
59 61
60 struct _v3270Class 62 struct _v3270Class
61 { 63 {
@@ -69,7 +71,7 @@ G_BEGIN_DECLS @@ -69,7 +71,7 @@ G_BEGIN_DECLS
69 GParamSpec * toggle[LIB3270_TOGGLE_COUNT]; // Toggle properties. 71 GParamSpec * toggle[LIB3270_TOGGLE_COUNT]; // Toggle properties.
70 72
71 // Properties saved to the configuration file. 73 // Properties saved to the configuration file.
72 - GParamSpec * settings[V3270_SETTING_COUNT]; 74 + const gchar **persistent;
73 75
74 // Signal related properties 76 // Signal related properties
75 GParamSpec * online; 77 GParamSpec * online;
@@ -92,9 +94,6 @@ G_BEGIN_DECLS @@ -92,9 +94,6 @@ G_BEGIN_DECLS
92 94
93 } properties; 95 } properties;
94 96
95 - // Predefined responses.  
96 -// GParamSpec * responses[V3270_TOGGLEABLE_DIALOG_CUSTOM];  
97 -  
98 // Cursors 97 // Cursors
99 GdkCursor * cursors[LIB3270_POINTER_COUNT]; 98 GdkCursor * cursors[LIB3270_POINTER_COUNT];
100 99
src/include/v3270/settings.h
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 LIB3270_EXPORT void v3270_to_key_file(GtkWidget *widget, GKeyFile *key_file, const gchar *group_name); 48 LIB3270_EXPORT void v3270_to_key_file(GtkWidget *widget, GKeyFile *key_file, const gchar *group_name);
49 49
50 /// @brief Emit the "save-settings" signal. 50 /// @brief Emit the "save-settings" signal.
51 - LIB3270_EXPORT void v3270_emit_save_settings(GtkWidget *widget); 51 + LIB3270_EXPORT void v3270_emit_save_settings(GtkWidget *widget, const gchar *property_name);
52 52
53 #ifdef _WIN32 53 #ifdef _WIN32
54 54
src/selection/selection.c
@@ -151,7 +151,7 @@ void v3270_selection_set_font_family(GtkWidget *widget, const gchar *name) { @@ -151,7 +151,7 @@ void v3270_selection_set_font_family(GtkWidget *widget, const gchar *name) {
151 terminal->selection.font_family = g_strdup(name); 151 terminal->selection.font_family = g_strdup(name);
152 } 152 }
153 153
154 - v3270_emit_save_settings(widget); 154 + v3270_emit_save_settings(widget,NULL);
155 155
156 } 156 }
157 157
@@ -181,7 +181,7 @@ void v3270_selection_set_color_scheme(GtkWidget *widget, const gchar *name) { @@ -181,7 +181,7 @@ void v3270_selection_set_color_scheme(GtkWidget *widget, const gchar *name) {
181 terminal->selection.color.scheme = g_strdup(name); 181 terminal->selection.color.scheme = g_strdup(name);
182 } 182 }
183 183
184 - v3270_emit_save_settings(widget); 184 + v3270_emit_save_settings(widget,NULL);
185 185
186 } 186 }
187 187
src/terminal/callbacks.c
@@ -112,7 +112,8 @@ static gboolean v3270_update_url(v3270 *terminal) @@ -112,7 +112,8 @@ static gboolean v3270_update_url(v3270 *terminal)
112 { 112 {
113 GtkWidget * widget = GTK_WIDGET(terminal); 113 GtkWidget * widget = GTK_WIDGET(terminal);
114 debug("url=%s",v3270_get_url(widget)); 114 debug("url=%s",v3270_get_url(widget));
115 - v3270_notify_setting(widget,V3270_SETTING_URL); 115 +
  116 + v3270_emit_save_settings(widget,"url");
116 v3270_signal_emit(widget, V3270_SIGNAL_SESSION_CHANGED); 117 v3270_signal_emit(widget, V3270_SIGNAL_SESSION_CHANGED);
117 return FALSE; 118 return FALSE;
118 } 119 }
@@ -201,9 +202,7 @@ static void update_model(H3270 *session, const char *name, int model, G_GNUC_UNU @@ -201,9 +202,7 @@ static void update_model(H3270 *session, const char *name, int model, G_GNUC_UNU
201 { 202 {
202 GtkWidget * widget = GTK_WIDGET(lib3270_get_user_data(session)); 203 GtkWidget * widget = GTK_WIDGET(lib3270_get_user_data(session));
203 204
204 - debug("%s: terminal=%p pspec=%p",__FUNCTION__,widget,GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]);  
205 - g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]);  
206 - 205 +// g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]);
207 v3270_signal_emit(widget,V3270_SIGNAL_MODEL_CHANGED, (guint) model, name); 206 v3270_signal_emit(widget,V3270_SIGNAL_MODEL_CHANGED, (guint) model, name);
208 } 207 }
209 208
src/terminal/charset.c
@@ -337,8 +337,7 @@ @@ -337,8 +337,7 @@
337 g_free(cfg.host); 337 g_free(cfg.host);
338 g_free(cfg.display); 338 g_free(cfg.display);
339 339
340 - debug("%s=%p",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_REMAP_FILE]);  
341 - v3270_notify_setting(widget,V3270_SETTING_REMAP_FILE); 340 + v3270_emit_save_settings(widget,"remap_file");
342 341
343 } 342 }
344 343
src/terminal/colors.c
@@ -135,7 +135,7 @@ LIB3270_EXPORT void v3270_set_colors(GtkWidget *widget, const gchar *colors) @@ -135,7 +135,7 @@ LIB3270_EXPORT void v3270_set_colors(GtkWidget *widget, const gchar *colors)
135 } 135 }
136 136
137 v3270_set_color_table(GTK_V3270(widget)->color,colors); 137 v3270_set_color_table(GTK_V3270(widget)->color,colors);
138 - v3270_emit_save_settings(widget); 138 + v3270_emit_save_settings(widget,NULL);
139 v3270_reload(widget); 139 v3270_reload(widget);
140 140
141 } 141 }
src/terminal/font/properties.c
@@ -162,10 +162,7 @@ LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name) @@ -162,10 +162,7 @@ LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name)
162 terminal->font.family = g_strdup(name); 162 terminal->font.family = g_strdup(name);
163 terminal->font.weight = lib3270_get_toggle(terminal->host,LIB3270_TOGGLE_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL; 163 terminal->font.weight = lib3270_get_toggle(terminal->host,LIB3270_TOGGLE_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL;
164 164
165 - v3270_emit_save_settings(widget);  
166 -  
167 - debug("%s: %p",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_FONT_FAMILY]);  
168 - v3270_notify_setting(widget,V3270_SETTING_FONT_FAMILY); 165 + v3270_emit_save_settings(widget,"font_family");
169 166
170 if(gtk_widget_get_realized(widget) && gtk_widget_get_has_window(widget)) 167 if(gtk_widget_get_realized(widget) && gtk_widget_get_has_window(widget))
171 { 168 {
@@ -177,13 +174,6 @@ LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name) @@ -177,13 +174,6 @@ LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name)
177 174
178 } 175 }
179 176
180 -void v3270_notify_setting(GtkWidget *widget, V3270_SETTING id)  
181 -{  
182 - debug("%s(%u)",__FUNCTION__,(unsigned int) id);  
183 - g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[id]);  
184 - v3270_emit_save_settings(widget);  
185 -}  
186 -  
187 LIB3270_EXPORT const gchar * v3270_get_font_family(GtkWidget *widget) 177 LIB3270_EXPORT const gchar * v3270_get_font_family(GtkWidget *widget)
188 { 178 {
189 g_return_val_if_fail(GTK_IS_V3270(widget),NULL); 179 g_return_val_if_fail(GTK_IS_V3270(widget),NULL);
src/terminal/keyfile.c
@@ -308,15 +308,17 @@ @@ -308,15 +308,17 @@
308 for(ix = 0; ix < G_N_ELEMENTS(klass->properties.toggle); ix++) 308 for(ix = 0; ix < G_N_ELEMENTS(klass->properties.toggle); ix++)
309 save_by_pspec(widget,klass->properties.toggle[ix],key_file,group_name); 309 save_by_pspec(widget,klass->properties.toggle[ix],key_file,group_name);
310 310
311 - // Save V3270 Responses  
312 - /*  
313 - for(ix = 0; ix < G_N_ELEMENTS(terminal->responses); ix++)  
314 - save_by_pspec(widget,klass->responses[ix],key_file,group_name);  
315 - */  
316 -  
317 // Save V3270 properties 311 // Save V3270 properties
318 - for(ix = 0; ix < V3270_SETTING_COUNT; ix++)  
319 - save_by_pspec(widget,klass->properties.settings[ix],key_file,group_name); 312 + for(ix = 0; klass->properties.persistent[ix];ix++)
  313 + {
  314 + save_by_pspec(
  315 + widget,
  316 + g_object_class_find_property(G_OBJECT_CLASS(klass),klass->properties.persistent[ix]),
  317 + key_file,
  318 + group_name
  319 + );
  320 +
  321 + }
320 322
321 } 323 }
322 324
@@ -362,15 +364,17 @@ @@ -362,15 +364,17 @@
362 for(ix = 0; ix < G_N_ELEMENTS(klass->properties.toggle); ix++) 364 for(ix = 0; ix < G_N_ELEMENTS(klass->properties.toggle); ix++)
363 load_by_pspec(widget,klass->properties.toggle[ix],key_file,group_name); 365 load_by_pspec(widget,klass->properties.toggle[ix],key_file,group_name);
364 366
365 - /*  
366 - // Load V3270 Responses  
367 - for(ix = 0; ix < G_N_ELEMENTS(terminal->responses); ix++)  
368 - load_by_pspec(widget,klass->responses[ix],key_file,group_name);  
369 - */  
370 -  
371 // Load V3270 properties 367 // Load V3270 properties
372 - for(ix = 0; ix < V3270_SETTING_COUNT; ix++)  
373 - load_by_pspec(widget,klass->properties.settings[ix],key_file,group_name); 368 + for(ix = 0; klass->properties.persistent[ix];ix++)
  369 + {
  370 + load_by_pspec(
  371 + widget,
  372 + g_object_class_find_property(G_OBJECT_CLASS(klass),klass->properties.persistent[ix]),
  373 + key_file,
  374 + group_name
  375 + );
  376 +
  377 + }
374 378
375 g_object_thaw_notify(G_OBJECT(widget)); 379 g_object_thaw_notify(G_OBJECT(widget));
376 terminal->freeze = 0; 380 terminal->freeze = 0;
src/terminal/properties/init.c
@@ -43,15 +43,7 @@ @@ -43,15 +43,7 @@
43 } properties[] = { 43 } properties[] = {
44 { "connected", &klass->properties.online }, 44 { "connected", &klass->properties.online },
45 { "associated-lu", &klass->properties.associated_lu }, 45 { "associated-lu", &klass->properties.associated_lu },
46 - { "url", &klass->properties.settings[V3270_SETTING_URL] },  
47 - { "model-number", &klass->properties.settings[V3270_SETTING_MODEL_NUMBER] },  
48 { "has-selection", &klass->properties.selection }, 46 { "has-selection", &klass->properties.selection },
49 - { "oversize", &klass->properties.settings[V3270_SETTING_OVERSIZE] },  
50 - { "host-charset", &klass->properties.settings[V3270_SETTING_HOST_CHARSET] },  
51 - { "unlock-delay", &klass->properties.settings[V3270_SETTING_UNLOCK_DELAY] },  
52 - { "color-type", &klass->properties.settings[V3270_SETTING_COLOR_TYPE] },  
53 - { "host-type", &klass->properties.settings[V3270_SETTING_HOST_TYPE] },  
54 - { "crl-preferred-protocol", &klass->properties.settings[V3270_SETTING_CRL_PROTOCOL] },  
55 }; 47 };
56 48
57 size_t ix; 49 size_t ix;
@@ -83,7 +75,7 @@ @@ -83,7 +75,7 @@
83 // Setup internal properties. 75 // Setup internal properties.
84 76
85 // Font family 77 // Font family
86 - klass->properties.settings[V3270_SETTING_FONT_FAMILY] = 78 + spec =
87 g_param_spec_string( 79 g_param_spec_string(
88 "font_family", 80 "font_family",
89 "font_family", 81 "font_family",
@@ -95,7 +87,7 @@ @@ -95,7 +87,7 @@
95 g_object_class_install_property( 87 g_object_class_install_property(
96 gobject_class, 88 gobject_class,
97 V3270_PROPERTY_FONT_FAMILY, 89 V3270_PROPERTY_FONT_FAMILY,
98 - klass->properties.settings[V3270_SETTING_FONT_FAMILY] 90 + spec
99 ); 91 );
100 92
101 // Session name. 93 // Session name.
@@ -114,7 +106,7 @@ @@ -114,7 +106,7 @@
114 ); 106 );
115 107
116 // Auto disconnect 108 // Auto disconnect
117 - klass->properties.settings[V3270_SETTING_AUTO_DISCONNECT] = 109 + spec =
118 g_param_spec_uint( 110 g_param_spec_uint(
119 "auto_disconnect", 111 "auto_disconnect",
120 "auto_disconnect", 112 "auto_disconnect",
@@ -128,7 +120,7 @@ @@ -128,7 +120,7 @@
128 g_object_class_install_property( 120 g_object_class_install_property(
129 gobject_class, 121 gobject_class,
130 V3270_PROPERTY_AUTO_DISCONNECT, 122 V3270_PROPERTY_AUTO_DISCONNECT,
131 - klass->properties.settings[V3270_SETTING_AUTO_DISCONNECT] 123 + spec
132 ); 124 );
133 125
134 // Clipboard 126 // Clipboard
@@ -147,7 +139,7 @@ @@ -147,7 +139,7 @@
147 ); 139 );
148 140
149 // Remap file 141 // Remap file
150 - klass->properties.settings[V3270_SETTING_REMAP_FILE] = 142 + spec =
151 g_param_spec_string( 143 g_param_spec_string(
152 "remap_file", 144 "remap_file",
153 "remap_file", 145 "remap_file",
@@ -159,11 +151,11 @@ @@ -159,11 +151,11 @@
159 g_object_class_install_property( 151 g_object_class_install_property(
160 gobject_class, 152 gobject_class,
161 V3270_PROPERTY_REMAP_FILE, 153 V3270_PROPERTY_REMAP_FILE,
162 - klass->properties.settings[V3270_SETTING_REMAP_FILE] 154 + spec
163 ); 155 );
164 156
165 // Dynamic font spacing 157 // Dynamic font spacing
166 - klass->properties.settings[V3270_SETTING_DYNAMIC_SPACING] = 158 + spec =
167 g_param_spec_boolean( 159 g_param_spec_boolean(
168 "dynamic_font_spacing", 160 "dynamic_font_spacing",
169 "dynamic_font_spacing", 161 "dynamic_font_spacing",
@@ -175,11 +167,11 @@ @@ -175,11 +167,11 @@
175 g_object_class_install_property( 167 g_object_class_install_property(
176 gobject_class, 168 gobject_class,
177 V3270_PROPERTY_DYNAMIC_SPACING, 169 V3270_PROPERTY_DYNAMIC_SPACING,
178 - klass->properties.settings[V3270_SETTING_DYNAMIC_SPACING] 170 + spec
179 ); 171 );
180 172
181 // Lu names 173 // Lu names
182 - klass->properties.settings[V3270_SETTING_LU_NAMES] = 174 + spec =
183 g_param_spec_string( 175 g_param_spec_string(
184 "lu_names", 176 "lu_names",
185 "lu_names", 177 "lu_names",
@@ -191,7 +183,7 @@ @@ -191,7 +183,7 @@
191 g_object_class_install_property( 183 g_object_class_install_property(
192 gobject_class, 184 gobject_class,
193 V3270_PROPERTY_LU_NAMES, 185 V3270_PROPERTY_LU_NAMES,
194 - klass->properties.settings[V3270_SETTING_LU_NAMES] 186 + spec
195 ); 187 );
196 188
197 // Trace 189 // Trace
@@ -209,7 +201,7 @@ @@ -209,7 +201,7 @@
209 ); 201 );
210 202
211 // Colors 203 // Colors
212 - klass->properties.settings[V3270_SETTING_TERMINAL_COLORS] = 204 + spec =
213 g_param_spec_string( 205 g_param_spec_string(
214 "colors", 206 "colors",
215 "colors", 207 "colors",
@@ -221,11 +213,11 @@ @@ -221,11 +213,11 @@
221 g_object_class_install_property( 213 g_object_class_install_property(
222 gobject_class, 214 gobject_class,
223 V3270_PROPERTY_TERMINAL_COLORS, 215 V3270_PROPERTY_TERMINAL_COLORS,
224 - klass->properties.settings[V3270_SETTING_TERMINAL_COLORS] 216 + spec
225 ); 217 );
226 218
227 // Clipboard options 219 // Clipboard options
228 - klass->properties.settings[V3270_SETTING_SELECTION_OPTIONS] = 220 + spec =
229 g_param_spec_uint( 221 g_param_spec_uint(
230 "selection_flags", 222 "selection_flags",
231 "selection_flags", 223 "selection_flags",
@@ -239,7 +231,7 @@ @@ -239,7 +231,7 @@
239 g_object_class_install_property( 231 g_object_class_install_property(
240 gobject_class, 232 gobject_class,
241 V3270_PROPERTY_SELECTION_OPTIONS, 233 V3270_PROPERTY_SELECTION_OPTIONS,
242 - klass->properties.settings[V3270_SETTING_SELECTION_OPTIONS] 234 + spec
243 ); 235 );
244 236
245 klass->properties.has_copy = 237 klass->properties.has_copy =
src/terminal/properties/set.c
@@ -256,7 +256,7 @@ LIB3270_EXPORT void v3270_set_auto_disconnect(GtkWidget *widget, guint minutes) @@ -256,7 +256,7 @@ LIB3270_EXPORT void v3270_set_auto_disconnect(GtkWidget *widget, guint minutes)
256 if(terminal->activity.disconnect != minutes) 256 if(terminal->activity.disconnect != minutes)
257 { 257 {
258 terminal->activity.disconnect = minutes; 258 terminal->activity.disconnect = minutes;
259 - v3270_notify_setting(widget,V3270_SETTING_AUTO_DISCONNECT); 259 + v3270_emit_save_settings(widget,"auto_disconnect");
260 } 260 }
261 261
262 } 262 }
@@ -273,7 +273,7 @@ LIB3270_EXPORT void v3270_set_dynamic_font_spacing(GtkWidget *widget, gboolean s @@ -273,7 +273,7 @@ LIB3270_EXPORT void v3270_set_dynamic_font_spacing(GtkWidget *widget, gboolean s
273 terminal->font.spacing.dynamic = state; 273 terminal->font.spacing.dynamic = state;
274 v3270_reconfigure(terminal); 274 v3270_reconfigure(terminal);
275 gtk_widget_queue_draw(widget); 275 gtk_widget_queue_draw(widget);
276 - v3270_notify_setting(widget,V3270_SETTING_DYNAMIC_SPACING); 276 + v3270_emit_save_settings(widget,"dynamic_font_spacing");
277 } 277 }
278 278
279 } 279 }
@@ -282,6 +282,6 @@ LIB3270_EXPORT void v3270_set_lunames(GtkWidget *widget, const gchar *lunames) @@ -282,6 +282,6 @@ LIB3270_EXPORT void v3270_set_lunames(GtkWidget *widget, const gchar *lunames)
282 { 282 {
283 g_return_if_fail(GTK_IS_V3270(widget)); 283 g_return_if_fail(GTK_IS_V3270(widget));
284 lib3270_set_lunames(GTK_V3270(widget)->host,(lunames && *lunames ? lunames : NULL)); 284 lib3270_set_lunames(GTK_V3270(widget)->host,(lunames && *lunames ? lunames : NULL));
285 - v3270_notify_setting(widget,V3270_SETTING_LU_NAMES); 285 + v3270_emit_save_settings(widget,"lu_names");
286 } 286 }
287 287
src/terminal/widget.c
@@ -58,6 +58,26 @@ @@ -58,6 +58,26 @@
58 * 58 *
59 */ 59 */
60 60
  61 +/// @brief Persistent properties (load/save from session file).
  62 +static const gchar *persistent_properties[] = {
  63 + "url",
  64 + "model-number",
  65 + "oversize",
  66 + "host-charset",
  67 + "unlock-delay",
  68 + "color-type",
  69 + "host-type",
  70 + "crl-preferred-protocol",
  71 + "remap_file",
  72 + "dynamic_font_spacing",
  73 + "lu_names",
  74 + "font_family",
  75 + "auto_disconnect",
  76 + "colors",
  77 + "selection_flags",
  78 + NULL
  79 +};
  80 +
61 /*--[ Widget definition ]----------------------------------------------------------------------------*/ 81 /*--[ Widget definition ]----------------------------------------------------------------------------*/
62 82
63 G_DEFINE_TYPE(v3270, v3270, GTK_TYPE_WIDGET); 83 G_DEFINE_TYPE(v3270, v3270, GTK_TYPE_WIDGET);
@@ -207,6 +227,8 @@ static void finalize(GObject *object) { @@ -207,6 +227,8 @@ static void finalize(GObject *object) {
207 GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass); 227 GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass);
208 GtkBindingSet * binding = gtk_binding_set_by_class(klass); 228 GtkBindingSet * binding = gtk_binding_set_by_class(klass);
209 229
  230 + klass->properties.persistent = persistent_properties;
  231 +
210 // Setup widget key bindings 232 // Setup widget key bindings
211 gtk_binding_entry_skip(binding,GDK_F10,0); 233 gtk_binding_entry_skip(binding,GDK_F10,0);
212 234
@@ -824,8 +846,11 @@ static gboolean bg_emit_save_settings(v3270 *terminal) @@ -824,8 +846,11 @@ static gboolean bg_emit_save_settings(v3270 *terminal)
824 return FALSE; 846 return FALSE;
825 } 847 }
826 848
827 -LIB3270_EXPORT void v3270_emit_save_settings(GtkWidget *widget) 849 +LIB3270_EXPORT void v3270_emit_save_settings(GtkWidget *widget, const gchar *property_name)
828 { 850 {
  851 + if(property_name)
  852 + g_object_notify(G_OBJECT(widget),property_name);
  853 +
829 debug("%s(Freeze is %s)",__FUNCTION__,GTK_V3270(widget)->freeze ? "ON" : "OFF"); 854 debug("%s(Freeze is %s)",__FUNCTION__,GTK_V3270(widget)->freeze ? "ON" : "OFF");
830 if(widget && GTK_IS_V3270(widget) && !GTK_V3270(widget)->freeze) 855 if(widget && GTK_IS_V3270(widget) && !GTK_V3270(widget)->freeze)
831 { 856 {