diff --git a/src/testprogram/testprogram.c b/src/testprogram/testprogram.c
index ecae7b4..3df27c6 100644
--- a/src/testprogram/testprogram.c
+++ b/src/testprogram/testprogram.c
@@ -95,11 +95,15 @@ static void activate(GtkApplication* app, gpointer user_data) {
const gchar *url = getenv("LIB3270_DEFAULT_HOST");
if(url) {
+
v3270_set_url(terminal,url);
v3270_connect(terminal);
- gtk_window_set_title(GTK_WINDOW(window), url);
+ gchar * title = g_strdup_printf("%s - %s", v3270_get_session_name(terminal), url);
+ gtk_window_set_title(GTK_WINDOW(window), title);
+ g_free(title);
+
} else {
- gtk_window_set_title(GTK_WINDOW(window), "Window");
+ gtk_window_set_title(GTK_WINDOW(window), v3270_get_session_name(terminal));
}
g_signal_connect(terminal,"popup",G_CALLBACK(popup_menu),NULL);
diff --git a/src/v3270/private.h b/src/v3270/private.h
index da61376..8392667 100644
--- a/src/v3270/private.h
+++ b/src/v3270/private.h
@@ -216,6 +216,7 @@ G_BEGIN_DECLS
PROP_LUNAME,
PROP_AUTO_DISCONNECT,
PROP_URL,
+ PROP_SESSION_NAME,
/* Toggles - always the last one, the real values are PROP_TOGGLE+LIB3270_TOGGLE */
PROP_TOGGLE
diff --git a/src/v3270/properties.c b/src/v3270/properties.c
index 2fd9031..d6ba335 100644
--- a/src/v3270/properties.c
+++ b/src/v3270/properties.c
@@ -70,6 +70,10 @@
v3270_set_url(GTK_WIDGET(object),g_value_get_string(value));
break;
+ case PROP_SESSION_NAME:
+ v3270_set_session_name(GTK_WIDGET(object),g_value_get_string(value));
+ break;
+
default:
if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT))
{
@@ -117,6 +121,10 @@
}
break;
+ case PROP_SESSION_NAME:
+ g_value_set_string(value,v3270_get_session_name(GTK_WIDGET(object)));
+ break;
+
default:
if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT))
{
@@ -185,6 +193,14 @@
G_PARAM_READABLE|G_PARAM_WRITABLE);
g_object_class_install_property(gobject_class,PROP_AUTO_DISCONNECT,v3270_properties[PROP_URL]);
+ v3270_properties[PROP_SESSION_NAME] = g_param_spec_string(
+ "session_name",
+ "session_name",
+ "The TN3270 Session Name",
+ g_get_application_name(),
+ G_PARAM_READABLE|G_PARAM_WRITABLE);
+ g_object_class_install_property(gobject_class,PROP_SESSION_NAME,v3270_properties[PROP_SESSION_NAME]);
+
// Toggle properties
int f;
diff --git a/src/v3270/widget.c b/src/v3270/widget.c
index 54c7ad1..e17add8 100644
--- a/src/v3270/widget.c
+++ b/src/v3270/widget.c
@@ -1629,8 +1629,14 @@ const gchar * v3270_get_luname(GtkWidget *widget)
const gchar * v3270_get_session_name(GtkWidget *widget)
{
- if(!GTK_IS_V3270(widget) || GTK_V3270(widget)->session_name == NULL)
+#ifdef DEBUG
+ 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();
+
return GTK_V3270(widget)->session_name;
}
diff --git a/v3270.cbp b/v3270.cbp
index bd68fda..100f37b 100644
--- a/v3270.cbp
+++ b/v3270.cbp
@@ -8,10 +8,11 @@
-
+
-
+
+
--
libgit2 0.21.2