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 | 265 | |
| 266 | 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 | 268 | #else |
| 294 | 269 | |
| 295 | 270 | if(program_config) | ... | ... |
src/pw3270/v3270/widget.c
| ... | ... | @@ -716,6 +716,8 @@ static void update_connect(H3270 *session, unsigned char connected) |
| 716 | 716 | { |
| 717 | 717 | v3270 *widget = GTK_V3270(session->widget); |
| 718 | 718 | |
| 719 | + trace("%s - %s",__FUNCTION__,connected ? "Connected" : "Disconnected"); | |
| 720 | + | |
| 719 | 721 | if(connected) |
| 720 | 722 | { |
| 721 | 723 | widget->cursor.show |= 2; |
| ... | ... | @@ -1513,7 +1515,7 @@ gboolean v3270_is_connected(GtkWidget *widget) |
| 1513 | 1515 | g_return_val_if_fail(GTK_IS_V3270(widget),FALSE); |
| 1514 | 1516 | return lib3270_connected(GTK_V3270(widget)->host) ? TRUE : FALSE; |
| 1515 | 1517 | } |
| 1516 | - | |
| 1518 | + | |
| 1517 | 1519 | GtkWidget * v3270_get_default_widget(void) |
| 1518 | 1520 | { |
| 1519 | 1521 | H3270 * hSession = lib3270_get_default_session_handle(); | ... | ... |
src/pw3270/window.c
| ... | ... | @@ -264,11 +264,34 @@ |
| 264 | 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 | 290 | LIB3270_EXPORT void pw3270_set_session_name(GtkWidget *widget, const gchar *name) |
| 268 | 291 | { |
| 269 | 292 | g_return_if_fail(GTK_IS_PW3270(widget)); |
| 270 | 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 | 297 | LIB3270_EXPORT void pw3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options) |
| ... | ... | @@ -387,15 +410,16 @@ |
| 387 | 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 | 416 | static void connected(GtkWidget *terminal, const gchar *host, GtkWidget * window) |
| 394 | 417 | { |
| 395 | - gchar * title; | |
| 396 | 418 | GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups"); |
| 397 | 419 | GtkWidget **keypad = g_object_get_data(G_OBJECT(window),"keypads"); |
| 398 | 420 | |
| 421 | + trace("%s(%s)",__FUNCTION__,host ? host : "NULL"); | |
| 422 | + | |
| 399 | 423 | if(group) |
| 400 | 424 | { |
| 401 | 425 | gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE); |
| ... | ... | @@ -411,9 +435,7 @@ |
| 411 | 435 | |
| 412 | 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 | 650 | g_signal_connect(widget,"window_state_event",G_CALLBACK(window_state_event),widget->terminal); |
| 629 | 651 | g_signal_connect(widget,"configure_event",G_CALLBACK(configure_event),widget->terminal); |
| 630 | 652 | |
| 631 | - | |
| 632 | 653 | // Finish setup |
| 633 | 654 | #ifdef DEBUG |
| 634 | 655 | lib3270_testpattern(host); | ... | ... |