diff --git a/src/pw3270/common/config.c b/src/pw3270/common/config.c index 18d8bc7..4a3d814 100644 --- a/src/pw3270/common/config.c +++ b/src/pw3270/common/config.c @@ -265,31 +265,6 @@ return ret; -/* - HKEY key_handle; - - if(registry_open_key(group,key,KEY_READ,&key_handle)) - { - DWORD data; - gboolean ret = def; - unsigned long datalen = sizeof(data); - unsigned long datatype; - - if(RegQueryValueExA(key_handle,key,NULL,&datatype,(BYTE *) &data,&datalen) == ERROR_SUCCESS) - { - if(datatype == REG_DWORD) - ret = data ? TRUE : FALSE; - else - g_warning("Unexpected registry data type in %s\\%s\\%s\\%s",registry_path,g_get_application_name(),group,key); - } - - RegCloseKey(key_handle); - - return ret; - - } -*/ - #else if(program_config) diff --git a/src/pw3270/v3270/widget.c b/src/pw3270/v3270/widget.c index 98a49d2..f256229 100644 --- a/src/pw3270/v3270/widget.c +++ b/src/pw3270/v3270/widget.c @@ -716,6 +716,8 @@ static void update_connect(H3270 *session, unsigned char connected) { v3270 *widget = GTK_V3270(session->widget); + trace("%s - %s",__FUNCTION__,connected ? "Connected" : "Disconnected"); + if(connected) { widget->cursor.show |= 2; @@ -1513,7 +1515,7 @@ gboolean v3270_is_connected(GtkWidget *widget) g_return_val_if_fail(GTK_IS_V3270(widget),FALSE); return lib3270_connected(GTK_V3270(widget)->host) ? TRUE : FALSE; } - + GtkWidget * v3270_get_default_widget(void) { H3270 * hSession = lib3270_get_default_session_handle(); diff --git a/src/pw3270/window.c b/src/pw3270/window.c index 7404e31..b339001 100644 --- a/src/pw3270/window.c +++ b/src/pw3270/window.c @@ -264,11 +264,34 @@ return g_get_application_name(); } + static void update_window_title(GtkWidget *window) + { + gchar * title; + GtkWidget * widget = GTK_PW3270(window)->terminal; + + if(v3270_is_connected(widget)) + { + const gchar *host = v3270_get_host(widget); + + if(host && *host) + title = g_strdup_printf("%s - %s",v3270_get_session_name(widget),host); + else + title = g_strdup_printf("%s",v3270_get_session_name(widget)); + } + else + { + title = g_strdup_printf(_( "%s - Disconnected" ),v3270_get_session_name(widget)); + } + + gtk_window_set_title(GTK_WINDOW(window),title); + g_free(title); + } + LIB3270_EXPORT void pw3270_set_session_name(GtkWidget *widget, const gchar *name) { g_return_if_fail(GTK_IS_PW3270(widget)); v3270_set_session_name(GTK_PW3270(widget)->terminal,name); - gtk_window_set_title(GTK_WINDOW(widget),name); + update_window_title(widget); } LIB3270_EXPORT void pw3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options) @@ -387,15 +410,16 @@ gtk_widget_set_sensitive(*(keypad++),FALSE); } - gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal)); + update_window_title(window); } static void connected(GtkWidget *terminal, const gchar *host, GtkWidget * window) { - gchar * title; GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups"); GtkWidget **keypad = g_object_get_data(G_OBJECT(window),"keypads"); + trace("%s(%s)",__FUNCTION__,host ? host : "NULL"); + if(group) { gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE); @@ -411,9 +435,7 @@ set_string_to_config("host","uri","%s",host); - title = g_strdup_printf("%s - %s",v3270_get_session_name(terminal),host); - gtk_window_set_title(GTK_WINDOW(window),title); - g_free(title); + update_window_title(window); } @@ -628,7 +650,6 @@ g_signal_connect(widget,"window_state_event",G_CALLBACK(window_state_event),widget->terminal); g_signal_connect(widget,"configure_event",G_CALLBACK(configure_event),widget->terminal); - // Finish setup #ifdef DEBUG lib3270_testpattern(host); -- libgit2 0.21.2