From 77beae4af1fce73310a0dc6f2aae9befd1521d2d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 18 Oct 2019 16:38:08 -0300 Subject: [PATCH] Implementing window title changes. --- src/widgets/window/terminal.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/widgets/window/terminal.c b/src/widgets/window/terminal.c index fef9d28..adb4a4d 100644 --- a/src/widgets/window/terminal.c +++ b/src/widgets/window/terminal.c @@ -30,21 +30,41 @@ #include "private.h" #include - static gboolean on_terminal_focus(GtkWidget *terminal, GdkEvent *event, pw3270ApplicationWindow * window) { + static void session_changed(GtkWidget *terminal, GtkWidget *label) { - debug("Focus on terminal %p", terminal); + gtk_label_set_text(GTK_LABEL(label),v3270_get_session_name(terminal)); - window->terminal = terminal; + // Do I have to change the window title? + GtkWidget * toplevel = gtk_widget_get_toplevel(terminal); + if(PW3270_IS_APPLICATION_WINDOW(toplevel)) { + + pw3270ApplicationWindow * window = PW3270_APPLICATION_WINDOW(toplevel); + + if(window->terminal == terminal) { + g_autofree gchar * title = v3270_get_session_title(terminal); + gtk_window_set_title(GTK_WINDOW(window), title); + } + + } - return FALSE; } - static void session_changed(GtkWidget *terminal, GtkWidget *label) { - gtk_label_set_text(GTK_LABEL(label),v3270_get_session_name(terminal)); + static gboolean on_terminal_focus(GtkWidget *terminal, GdkEvent *event, pw3270ApplicationWindow * window) { + + // Store the active terminal widget. + window->terminal = terminal; + + // Change window title + g_autofree gchar * title = v3270_get_session_title(terminal); + gtk_window_set_title(GTK_WINDOW(window), title); + + return FALSE; } GtkWidget * pw3270_terminal_new(GtkWidget *widget) { + g_return_val_if_fail(PW3270_IS_APPLICATION_WINDOW(widget),NULL); + pw3270ApplicationWindow * window = PW3270_APPLICATION_WINDOW(widget); GtkWidget * terminal = v3270_new(); GtkWidget * label = gtk_label_new(v3270_get_session_name(terminal)); -- libgit2 0.21.2