diff --git a/src/terminal/properties/get.c b/src/terminal/properties/get.c index 9722e7e..af8c1dc 100644 --- a/src/terminal/properties/get.c +++ b/src/terminal/properties/get.c @@ -124,17 +124,21 @@ LIB3270_EXPORT const gchar * v3270_get_luname(GtkWidget *widget) return lib3270_get_luname(GTK_V3270(widget)->host); } -LIB3270_EXPORT const gchar * v3270_get_session_name(GtkWidget *widget) +LIB3270_EXPORT const gchar * v3270_get_session_name(GtkWidget *widget) { -#ifdef DEBUG + g_return_val_if_fail(GTK_IS_V3270(widget),NULL); + v3270 * terminal = GTK_V3270(widget); - debug("Session name: [%s] Application name: [%s]",terminal->session_name, g_get_application_name()); -#endif // DEBUG - if(!(GTK_IS_V3270(widget) && GTK_V3270(widget)->session_name)) - return g_get_application_name(); + if(terminal->session_name) + return terminal->session_name; + + char id[] = { lib3270_get_session_id(terminal->host), 0 }; + if(id[0]) + return (terminal->session_name = g_strconcat(G_STRINGIFY(PRODUCT_NAME),":",id,NULL)); + + return G_STRINGIFY(PRODUCT_NAME); - return GTK_V3270(widget)->session_name; } LIB3270_EXPORT H3270 * v3270_get_session(GtkWidget *widget) diff --git a/src/testprogram/testprogram.c b/src/testprogram/testprogram.c index fc8bcfb..f77fb37 100644 --- a/src/testprogram/testprogram.c +++ b/src/testprogram/testprogram.c @@ -43,6 +43,10 @@ /*---[ Implement ]----------------------------------------------------------------------------------*/ + static void session_changed(GtkWidget *terminal, GtkWidget *window) { + gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal)); + } + static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { GtkWidget * window = gtk_application_window_new(app); @@ -76,11 +80,14 @@ // v3270_trace_window_new(terminal,NULL); // Setup and show main window + gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal)); gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (window), 800, 500); gtk_container_add(GTK_CONTAINER(window),vBox); gtk_widget_show_all(window); + g_signal_connect(G_OBJECT(terminal),"session_changed",G_CALLBACK(session_changed),window); + gtk_widget_grab_focus(terminal); } -- libgit2 0.21.2