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); |