Commit 1e0bb5569c9089cf43d83b9f16f99e62a0ee2546
1 parent
957b5cd8
Exists in
master
and in
1 other branch
Changing the default session name from "application name" to "product
name".
Showing
2 changed files
with
18 additions
and
7 deletions
Show diff stats
src/terminal/properties/get.c
| ... | ... | @@ -124,17 +124,21 @@ LIB3270_EXPORT const gchar * v3270_get_luname(GtkWidget *widget) |
| 124 | 124 | return lib3270_get_luname(GTK_V3270(widget)->host); |
| 125 | 125 | } |
| 126 | 126 | |
| 127 | -LIB3270_EXPORT const gchar * v3270_get_session_name(GtkWidget *widget) | |
| 127 | +LIB3270_EXPORT const gchar * v3270_get_session_name(GtkWidget *widget) | |
| 128 | 128 | { |
| 129 | -#ifdef DEBUG | |
| 129 | + g_return_val_if_fail(GTK_IS_V3270(widget),NULL); | |
| 130 | + | |
| 130 | 131 | v3270 * terminal = GTK_V3270(widget); |
| 131 | - debug("Session name: [%s] Application name: [%s]",terminal->session_name, g_get_application_name()); | |
| 132 | -#endif // DEBUG | |
| 133 | 132 | |
| 134 | - if(!(GTK_IS_V3270(widget) && GTK_V3270(widget)->session_name)) | |
| 135 | - return g_get_application_name(); | |
| 133 | + if(terminal->session_name) | |
| 134 | + return terminal->session_name; | |
| 135 | + | |
| 136 | + char id[] = { lib3270_get_session_id(terminal->host), 0 }; | |
| 137 | + if(id[0]) | |
| 138 | + return (terminal->session_name = g_strconcat(G_STRINGIFY(PRODUCT_NAME),":",id,NULL)); | |
| 139 | + | |
| 140 | + return G_STRINGIFY(PRODUCT_NAME); | |
| 136 | 141 | |
| 137 | - return GTK_V3270(widget)->session_name; | |
| 138 | 142 | } |
| 139 | 143 | |
| 140 | 144 | LIB3270_EXPORT H3270 * v3270_get_session(GtkWidget *widget) | ... | ... |
src/testprogram/testprogram.c
| ... | ... | @@ -43,6 +43,10 @@ |
| 43 | 43 | |
| 44 | 44 | /*---[ Implement ]----------------------------------------------------------------------------------*/ |
| 45 | 45 | |
| 46 | + static void session_changed(GtkWidget *terminal, GtkWidget *window) { | |
| 47 | + gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal)); | |
| 48 | + } | |
| 49 | + | |
| 46 | 50 | static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { |
| 47 | 51 | |
| 48 | 52 | GtkWidget * window = gtk_application_window_new(app); |
| ... | ... | @@ -76,11 +80,14 @@ |
| 76 | 80 | // v3270_trace_window_new(terminal,NULL); |
| 77 | 81 | |
| 78 | 82 | // Setup and show main window |
| 83 | + gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal)); | |
| 79 | 84 | gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); |
| 80 | 85 | gtk_window_set_default_size (GTK_WINDOW (window), 800, 500); |
| 81 | 86 | gtk_container_add(GTK_CONTAINER(window),vBox); |
| 82 | 87 | gtk_widget_show_all(window); |
| 83 | 88 | |
| 89 | + g_signal_connect(G_OBJECT(terminal),"session_changed",G_CALLBACK(session_changed),window); | |
| 90 | + | |
| 84 | 91 | gtk_widget_grab_focus(terminal); |
| 85 | 92 | |
| 86 | 93 | } | ... | ... |