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 | } | ... | ... |