Commit e8d1ea40a0687c5d276c31dd2af2f824f79bb1ca
1 parent
5051b86e
Exists in
master
and in
5 other branches
Titulo da janela não estava atualizando corretamente quando o toggle "autoconnect" estava ativo
Showing
3 changed files
with
31 additions
and
33 deletions
Show diff stats
src/pw3270/common/config.c
@@ -265,31 +265,6 @@ | @@ -265,31 +265,6 @@ | ||
265 | 265 | ||
266 | return ret; | 266 | return ret; |
267 | 267 | ||
268 | -/* | ||
269 | - HKEY key_handle; | ||
270 | - | ||
271 | - if(registry_open_key(group,key,KEY_READ,&key_handle)) | ||
272 | - { | ||
273 | - DWORD data; | ||
274 | - gboolean ret = def; | ||
275 | - unsigned long datalen = sizeof(data); | ||
276 | - unsigned long datatype; | ||
277 | - | ||
278 | - if(RegQueryValueExA(key_handle,key,NULL,&datatype,(BYTE *) &data,&datalen) == ERROR_SUCCESS) | ||
279 | - { | ||
280 | - if(datatype == REG_DWORD) | ||
281 | - ret = data ? TRUE : FALSE; | ||
282 | - else | ||
283 | - g_warning("Unexpected registry data type in %s\\%s\\%s\\%s",registry_path,g_get_application_name(),group,key); | ||
284 | - } | ||
285 | - | ||
286 | - RegCloseKey(key_handle); | ||
287 | - | ||
288 | - return ret; | ||
289 | - | ||
290 | - } | ||
291 | -*/ | ||
292 | - | ||
293 | #else | 268 | #else |
294 | 269 | ||
295 | if(program_config) | 270 | if(program_config) |
src/pw3270/v3270/widget.c
@@ -716,6 +716,8 @@ static void update_connect(H3270 *session, unsigned char connected) | @@ -716,6 +716,8 @@ static void update_connect(H3270 *session, unsigned char connected) | ||
716 | { | 716 | { |
717 | v3270 *widget = GTK_V3270(session->widget); | 717 | v3270 *widget = GTK_V3270(session->widget); |
718 | 718 | ||
719 | + trace("%s - %s",__FUNCTION__,connected ? "Connected" : "Disconnected"); | ||
720 | + | ||
719 | if(connected) | 721 | if(connected) |
720 | { | 722 | { |
721 | widget->cursor.show |= 2; | 723 | widget->cursor.show |= 2; |
@@ -1513,7 +1515,7 @@ gboolean v3270_is_connected(GtkWidget *widget) | @@ -1513,7 +1515,7 @@ gboolean v3270_is_connected(GtkWidget *widget) | ||
1513 | g_return_val_if_fail(GTK_IS_V3270(widget),FALSE); | 1515 | g_return_val_if_fail(GTK_IS_V3270(widget),FALSE); |
1514 | return lib3270_connected(GTK_V3270(widget)->host) ? TRUE : FALSE; | 1516 | return lib3270_connected(GTK_V3270(widget)->host) ? TRUE : FALSE; |
1515 | } | 1517 | } |
1516 | - | 1518 | + |
1517 | GtkWidget * v3270_get_default_widget(void) | 1519 | GtkWidget * v3270_get_default_widget(void) |
1518 | { | 1520 | { |
1519 | H3270 * hSession = lib3270_get_default_session_handle(); | 1521 | H3270 * hSession = lib3270_get_default_session_handle(); |
src/pw3270/window.c
@@ -264,11 +264,34 @@ | @@ -264,11 +264,34 @@ | ||
264 | return g_get_application_name(); | 264 | return g_get_application_name(); |
265 | } | 265 | } |
266 | 266 | ||
267 | + static void update_window_title(GtkWidget *window) | ||
268 | + { | ||
269 | + gchar * title; | ||
270 | + GtkWidget * widget = GTK_PW3270(window)->terminal; | ||
271 | + | ||
272 | + if(v3270_is_connected(widget)) | ||
273 | + { | ||
274 | + const gchar *host = v3270_get_host(widget); | ||
275 | + | ||
276 | + if(host && *host) | ||
277 | + title = g_strdup_printf("%s - %s",v3270_get_session_name(widget),host); | ||
278 | + else | ||
279 | + title = g_strdup_printf("%s",v3270_get_session_name(widget)); | ||
280 | + } | ||
281 | + else | ||
282 | + { | ||
283 | + title = g_strdup_printf(_( "%s - Disconnected" ),v3270_get_session_name(widget)); | ||
284 | + } | ||
285 | + | ||
286 | + gtk_window_set_title(GTK_WINDOW(window),title); | ||
287 | + g_free(title); | ||
288 | + } | ||
289 | + | ||
267 | LIB3270_EXPORT void pw3270_set_session_name(GtkWidget *widget, const gchar *name) | 290 | LIB3270_EXPORT void pw3270_set_session_name(GtkWidget *widget, const gchar *name) |
268 | { | 291 | { |
269 | g_return_if_fail(GTK_IS_PW3270(widget)); | 292 | g_return_if_fail(GTK_IS_PW3270(widget)); |
270 | v3270_set_session_name(GTK_PW3270(widget)->terminal,name); | 293 | v3270_set_session_name(GTK_PW3270(widget)->terminal,name); |
271 | - gtk_window_set_title(GTK_WINDOW(widget),name); | 294 | + update_window_title(widget); |
272 | } | 295 | } |
273 | 296 | ||
274 | LIB3270_EXPORT void pw3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options) | 297 | LIB3270_EXPORT void pw3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options) |
@@ -387,15 +410,16 @@ | @@ -387,15 +410,16 @@ | ||
387 | gtk_widget_set_sensitive(*(keypad++),FALSE); | 410 | gtk_widget_set_sensitive(*(keypad++),FALSE); |
388 | } | 411 | } |
389 | 412 | ||
390 | - gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal)); | 413 | + update_window_title(window); |
391 | } | 414 | } |
392 | 415 | ||
393 | static void connected(GtkWidget *terminal, const gchar *host, GtkWidget * window) | 416 | static void connected(GtkWidget *terminal, const gchar *host, GtkWidget * window) |
394 | { | 417 | { |
395 | - gchar * title; | ||
396 | GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups"); | 418 | GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups"); |
397 | GtkWidget **keypad = g_object_get_data(G_OBJECT(window),"keypads"); | 419 | GtkWidget **keypad = g_object_get_data(G_OBJECT(window),"keypads"); |
398 | 420 | ||
421 | + trace("%s(%s)",__FUNCTION__,host ? host : "NULL"); | ||
422 | + | ||
399 | if(group) | 423 | if(group) |
400 | { | 424 | { |
401 | gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE); | 425 | gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE); |
@@ -411,9 +435,7 @@ | @@ -411,9 +435,7 @@ | ||
411 | 435 | ||
412 | set_string_to_config("host","uri","%s",host); | 436 | set_string_to_config("host","uri","%s",host); |
413 | 437 | ||
414 | - title = g_strdup_printf("%s - %s",v3270_get_session_name(terminal),host); | ||
415 | - gtk_window_set_title(GTK_WINDOW(window),title); | ||
416 | - g_free(title); | 438 | + update_window_title(window); |
417 | 439 | ||
418 | } | 440 | } |
419 | 441 | ||
@@ -628,7 +650,6 @@ | @@ -628,7 +650,6 @@ | ||
628 | g_signal_connect(widget,"window_state_event",G_CALLBACK(window_state_event),widget->terminal); | 650 | g_signal_connect(widget,"window_state_event",G_CALLBACK(window_state_event),widget->terminal); |
629 | g_signal_connect(widget,"configure_event",G_CALLBACK(configure_event),widget->terminal); | 651 | g_signal_connect(widget,"configure_event",G_CALLBACK(configure_event),widget->terminal); |
630 | 652 | ||
631 | - | ||
632 | // Finish setup | 653 | // Finish setup |
633 | #ifdef DEBUG | 654 | #ifdef DEBUG |
634 | lib3270_testpattern(host); | 655 | lib3270_testpattern(host); |