[gnome-terminal] screen: Simplify terminal title handling
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-terminal] screen: Simplify terminal title handling
- Date: Sun, 7 Jul 2013 09:41:50 +0000 (UTC)
commit f27bf0135a2d18ba22158d28bf1f8c5f6ec066c8
Author: Christian Persch <chpe gnome org>
Date: Fri Jun 21 15:33:53 2013 +0200
screen: Simplify terminal title handling
Remove all the options.
src/migration.c | 4 -
src/org.gnome.Terminal.gschema.xml.in | 12 --
src/profile-editor.c | 8 -
src/profile-preferences.ui | 48 +-----
src/terminal-enums.h | 8 -
src/terminal-schemas.h | 1 -
src/terminal-screen.c | 303 ++++++---------------------------
src/terminal-screen.h | 8 +-
src/terminal-window.c | 13 +-
9 files changed, 59 insertions(+), 346 deletions(-)
---
diff --git a/src/migration.c b/src/migration.c
index 1f76a99..12a4bef 100644
--- a/src/migration.c
+++ b/src/migration.c
@@ -85,7 +85,6 @@ enum {
#define KEY_SCROLL_ON_KEYSTROKE "scroll_on_keystroke"
#define KEY_SCROLL_ON_OUTPUT "scroll_on_output"
#define KEY_SILENT_BELL "silent_bell"
-#define KEY_TITLE_MODE "title_mode"
#define KEY_TITLE "title"
#define KEY_UPDATE_RECORDS "update_records"
#define KEY_USE_CUSTOM_COMMAND "use_custom_command"
@@ -396,9 +395,6 @@ migrate_profile (TerminalSettingsList *list,
migrate_bool (client, path, KEY_BOLD_COLOR_SAME_AS_FG,
settings, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG_KEY,
FALSE);
- migrate_genum (client, path, KEY_TITLE_MODE,
- settings, TERMINAL_PROFILE_TITLE_MODE_KEY,
- TERMINAL_TYPE_TITLE_MODE);
migrate_string (client, path, KEY_TITLE,
settings, TERMINAL_PROFILE_TITLE_KEY);
migrate_bool (client, path, KEY_ALLOW_BOLD,
diff --git a/src/org.gnome.Terminal.gschema.xml.in b/src/org.gnome.Terminal.gschema.xml.in
index 8905b5a..6193a35 100644
--- a/src/org.gnome.Terminal.gschema.xml.in
+++ b/src/org.gnome.Terminal.gschema.xml.in
@@ -24,13 +24,6 @@
-->
<schemalist gettext-domain="gnome-terminal">
- <enum id='org.gnome.Terminal.TitleMode'>
- <value nick='replace' value='0'/>
- <value nick='before' value='1'/>
- <value nick='after' value='2'/>
- <value nick='ignore' value='3'/>
- </enum>
-
<enum id='org.gnome.Terminal.NewTerminalMode'>
<value nick='window' value='0'/>
<value nick='tab' value='1'/>
@@ -118,11 +111,6 @@
<_summary>Whether bold text should use the same color as normal text</_summary>
<_description>If true, boldface text will be rendered using the same color as normal
text.</_description>
</key>
- <key name="title-mode" enum="org.gnome.Terminal.TitleMode">
- <default>'replace'</default>
- <_summary>What to do with dynamic title</_summary>
- <_description>If the application in the terminal sets the title (most typically people have their
shell set up to do this), the dynamically-set title can erase the configured title, go before it, go after
it, or replace it. The possible values are "replace", "before", "after", and "ignore".</_description>
- </key>
<key name="title" type="s">
<default l10n="messages" context="title">'Terminal'</default>
<_summary>Title for terminal</_summary>
diff --git a/src/profile-editor.c b/src/profile-editor.c
index 787066b..f228624 100644
--- a/src/profile-editor.c
+++ b/src/profile-editor.c
@@ -941,14 +941,6 @@ terminal_profile_edit (GSettings *profile,
g_settings_bind (profile, TERMINAL_PROFILE_TITLE_KEY,
gtk_builder_get_object (builder, "title-entry"), "text",
G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
- g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_TITLE_MODE_KEY,
- gtk_builder_get_object (builder,
- "title-mode-combobox"),
- "active",
- G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET,
- (GSettingsBindGetMapping) string_to_enum,
- (GSettingsBindSetMapping) enum_to_string,
- terminal_title_mode_get_type, NULL);
g_settings_bind (profile, TERMINAL_PROFILE_UPDATE_RECORDS_KEY,
gtk_builder_get_object (builder,
"update-records-checkbutton"),
diff --git a/src/profile-preferences.ui b/src/profile-preferences.ui
index 646a389..db1b6fb 100644
--- a/src/profile-preferences.ui
+++ b/src/profile-preferences.ui
@@ -638,7 +638,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Initial _title:</property>
+ <property name="label" translatable="yes">_Title:</property>
<property name="use_underline">True</property>
<property name="justify">center</property>
<property name="mnemonic_widget">title-entry</property>
@@ -667,52 +667,6 @@
<property name="position">0</property>
</packing>
</child>
- <child>
- <object class="GtkHBox" id="hbox138">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel" id="title-mode-combobox-label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">When terminal commands set
their o_wn titles:</property>
- <property name="use_underline">True</property>
- <property name="justify">center</property>
- <property name="mnemonic_widget">title-mode-combobox</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="title-mode-combobox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="model">model2</property>
- <child>
- <object class="GtkCellRendererText" id="renderer2"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
</object>
</child>
</object>
diff --git a/src/terminal-enums.h b/src/terminal-enums.h
index 6c5b60a..3ca76fd 100644
--- a/src/terminal-enums.h
+++ b/src/terminal-enums.h
@@ -31,14 +31,6 @@ typedef enum {
typedef enum
{
- TERMINAL_TITLE_REPLACE,
- TERMINAL_TITLE_BEFORE,
- TERMINAL_TITLE_AFTER,
- TERMINAL_TITLE_IGNORE
-} TerminalTitleMode;
-
-typedef enum
-{
TERMINAL_EXIT_CLOSE,
TERMINAL_EXIT_RESTART,
TERMINAL_EXIT_HOLD
diff --git a/src/terminal-schemas.h b/src/terminal-schemas.h
index e8a83d7..5a2e721 100644
--- a/src/terminal-schemas.h
+++ b/src/terminal-schemas.h
@@ -54,7 +54,6 @@ G_BEGIN_DECLS
#define TERMINAL_PROFILE_SCROLLBAR_POLICY_KEY "scrollbar-policy"
#define TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE_KEY "scroll-on-keystroke"
#define TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY "scroll-on-output"
-#define TERMINAL_PROFILE_TITLE_MODE_KEY "title-mode"
#define TERMINAL_PROFILE_TITLE_KEY "title"
#define TERMINAL_PROFILE_UPDATE_RECORDS_KEY "update-records"
#define TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY "use-custom-command"
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 0d42b10..78e146f 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -76,10 +76,7 @@ struct _TerminalScreenPrivate
GSettings *profile; /* never NULL */
guint profile_changed_id;
guint profile_forgotten_id;
- char *raw_title, *raw_icon_title;
- char *cooked_title, *cooked_icon_title;
- char *override_title;
- gboolean icon_title_set;
+ char *title;
char *initial_working_directory;
char **initial_env;
char **override_command;
@@ -87,7 +84,6 @@ struct _TerminalScreenPrivate
int child_pid;
int pty_fd;
double font_scale;
- gboolean user_title; /* title was manually set */
GSList *match_tags;
guint launch_child_source_id;
};
@@ -107,6 +103,7 @@ enum {
PROP_ICON_TITLE,
PROP_ICON_TITLE_SET,
PROP_TITLE,
+ PROP_DESCRIPTION,
PROP_INITIAL_ENVIRONMENT
};
@@ -147,11 +144,6 @@ static void terminal_screen_icon_title_changed (VteTerminal *vte_terminal
static void update_color_scheme (TerminalScreen *screen);
-static gboolean terminal_screen_format_title (TerminalScreen *screen, const char *raw_title, char
**old_cooked_title);
-
-static void terminal_screen_cook_title (TerminalScreen *screen);
-static void terminal_screen_cook_icon_title (TerminalScreen *screen);
-
static char* terminal_screen_check_match (TerminalScreen *screen,
int column,
int row,
@@ -357,9 +349,6 @@ terminal_screen_init (TerminalScreen *screen)
gtk_target_table_free (targets, n_targets);
gtk_target_list_unref (target_list);
- priv->override_title = NULL;
- priv->user_title = FALSE;
-
g_signal_connect (screen, "window-title-changed",
G_CALLBACK (terminal_screen_window_title_changed),
screen);
@@ -405,6 +394,9 @@ terminal_screen_get_property (GObject *object,
case PROP_TITLE:
g_value_set_string (value, terminal_screen_get_title (screen));
break;
+ case PROP_DESCRIPTION:
+ g_value_take_string (value, terminal_screen_get_description (screen));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -430,6 +422,7 @@ terminal_screen_set_property (GObject *object,
case PROP_ICON_TITLE:
case PROP_ICON_TITLE_SET:
case PROP_TITLE:
+ case PROP_DESCRIPTION:
/* not writable */
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -527,6 +520,13 @@ terminal_screen_class_init (TerminalScreenClass *klass)
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK |
G_PARAM_STATIC_BLURB));
+ g_object_class_install_property (object_class,
+ PROP_DESCRIPTION,
+ g_param_spec_string ("description", NULL, NULL,
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
g_object_class_install_property
(object_class,
PROP_INITIAL_ENVIRONMENT,
@@ -597,11 +597,7 @@ terminal_screen_finalize (GObject *object)
terminal_screen_set_profile (screen, NULL);
- g_free (priv->raw_title);
- g_free (priv->cooked_title);
- g_free (priv->override_title);
- g_free (priv->raw_icon_title);
- g_free (priv->cooked_icon_title);
+ g_free (priv->title);
g_free (priv->initial_working_directory);
g_strfreev (priv->override_command);
g_strfreev (priv->initial_env);
@@ -637,7 +633,7 @@ terminal_screen_new (GSettings *profile,
}
if (title)
- terminal_screen_set_override_title (screen, title);
+ terminal_screen_set_user_title (screen, title);
priv->initial_working_directory = g_strdup (working_dir);
@@ -693,173 +689,44 @@ terminal_screen_exec (TerminalScreen *screen,
}
const char*
-terminal_screen_get_raw_title (TerminalScreen *screen)
-{
- TerminalScreenPrivate *priv = screen->priv;
-
- if (priv->raw_title)
- return priv->raw_title;
-
- return "";
-}
-
-const char*
terminal_screen_get_title (TerminalScreen *screen)
{
- TerminalScreenPrivate *priv = screen->priv;
-
- if (priv->cooked_title == NULL)
- terminal_screen_cook_title (screen);
-
- /* cooked_title may still be NULL */
- if (priv->cooked_title != NULL)
- return priv->cooked_title;
- else
- return "";
+ return vte_terminal_get_window_title (VTE_TERMINAL (screen));
}
const char*
terminal_screen_get_icon_title (TerminalScreen *screen)
{
- TerminalScreenPrivate *priv = screen->priv;
-
- if (priv->cooked_icon_title == NULL)
- terminal_screen_cook_icon_title (screen);
-
- /* cooked_icon_title may still be NULL */
- if (priv->cooked_icon_title != NULL)
- return priv->cooked_icon_title;
- else
- return "";
+ return vte_terminal_get_icon_title (VTE_TERMINAL (screen));
}
gboolean
terminal_screen_get_icon_title_set (TerminalScreen *screen)
{
- return screen->priv->icon_title_set;
-}
-
-/* Supported format specifiers:
- * %S = static title
- * %D = dynamic title
- * %A = dynamic title, falling back to static title if empty
- * %- = separator, if not at start or end of string (excluding whitespace)
- */
-static const char *
-terminal_screen_get_title_format (TerminalScreen *screen)
-{
- TerminalScreenPrivate *priv = screen->priv;
- static const char *formats[] = {
- "%A" /* TERMINAL_TITLE_REPLACE */,
- "%D%-%S" /* TERMINAL_TITLE_BEFORE */,
- "%S%-%D" /* TERMINAL_TITLE_AFTER */,
- "%S" /* TERMINAL_TITLE_IGNORE */
- };
-
- return formats[g_settings_get_enum (priv->profile, TERMINAL_PROFILE_TITLE_MODE_KEY)];
+ return vte_terminal_get_icon_title (VTE_TERMINAL (screen)) != NULL;
}
-/**
- * terminal_screen_format_title::
- * @screen:
- * @raw_title: main ingredient
- * @titleptr <inout>: pointer of the current title string
- *
- * Format title according @format, and stores it in <literal>*titleptr</literal>.
- * Always ensures that *titleptr will be non-NULL.
- *
- * Returns: %TRUE iff the title changed
- */
-static gboolean
-terminal_screen_format_title (TerminalScreen *screen,
- const char *raw_title,
- char **titleptr)
+char *
+terminal_screen_get_description (TerminalScreen *screen)
{
TerminalScreenPrivate *priv = screen->priv;
- const char *format, *arg;
- const char *static_title = NULL;
- GString *title;
- gboolean add_sep = FALSE;
-
- g_assert (titleptr);
+ const char *title;
/* use --title argument if one was supplied, otherwise ask the profile */
- if (priv->override_title)
- static_title = priv->override_title;
+ if (priv->title)
+ title = priv->title;
else
- g_settings_get (priv->profile, TERMINAL_PROFILE_TITLE_KEY, "&s", &static_title);
-
- title = g_string_sized_new (128);
-
- format = terminal_screen_get_title_format (screen);
- for (arg = format; *arg; arg += 2)
- {
- const char *text_to_append = NULL;
-
- g_assert (arg[0] == '%');
-
- switch (arg[1])
- {
- case 'A':
- text_to_append = raw_title ? raw_title : static_title;
- break;
- case 'D':
- text_to_append = raw_title;
- break;
- case 'S':
- text_to_append = static_title;
- break;
- case '-':
- text_to_append = NULL;
- add_sep = TRUE;
- break;
- default:
- g_assert_not_reached ();
- }
+ g_settings_get (priv->profile, TERMINAL_PROFILE_TITLE_KEY, "&s", &title);
- if (!text_to_append || !text_to_append[0])
- continue;
-
- if (add_sep && title->len > 0)
- g_string_append (title, " - ");
-
- g_string_append (title, text_to_append);
- add_sep = FALSE;
- }
-
- if (*titleptr == NULL || strcmp (title->str, *titleptr) != 0)
- {
- g_free (*titleptr);
- *titleptr = g_string_free (title, FALSE);
- return TRUE;
- }
-
- g_string_free (title, TRUE);
- return FALSE;
-}
-
-static void
-terminal_screen_cook_title (TerminalScreen *screen)
-{
- TerminalScreenPrivate *priv = screen->priv;
-
- if (terminal_screen_format_title (screen, priv->raw_title, &priv->cooked_title))
- g_object_notify (G_OBJECT (screen), "title");
-}
-
-static void
-terminal_screen_cook_icon_title (TerminalScreen *screen)
-{
- TerminalScreenPrivate *priv = screen->priv;
-
- if (terminal_screen_format_title (screen, priv->raw_icon_title, &priv->cooked_icon_title))
- g_object_notify (G_OBJECT (screen), "icon-title");
+ return g_strdup_printf ("%s — %d",
+ title && title[0] ? title : _("Terminal"),
+ screen->priv->child_pid);
}
static void
terminal_screen_profile_changed_cb (GSettings *profile,
const char *prop_name,
- TerminalScreen *screen)
+ TerminalScreen *screen)
{
TerminalScreenPrivate *priv = screen->priv;
GObject *object = G_OBJECT (screen);
@@ -891,11 +758,9 @@ terminal_screen_profile_changed_cb (GSettings *profile,
}
if (!prop_name ||
- prop_name == I_(TERMINAL_PROFILE_TITLE_MODE_KEY) ||
prop_name == I_(TERMINAL_PROFILE_TITLE_KEY))
{
- terminal_screen_cook_title (screen);
- terminal_screen_cook_icon_title (screen);
+ g_object_notify (object, "description");
}
if (gtk_widget_get_realized (GTK_WIDGET (screen)) &&
@@ -1077,6 +942,7 @@ terminal_screen_set_profile (TerminalScreen *screen,
g_object_unref (old_profile);
g_object_notify (G_OBJECT (screen), "profile");
+ g_object_notify (G_OBJECT (screen), "description");
}
GSettings*
@@ -1467,6 +1333,8 @@ out:
g_strfreev (env);
free_fd_setup_data (data);
+ g_object_notify (G_OBJECT (screen), "description");
+
return result;
}
@@ -1613,83 +1481,33 @@ terminal_screen_button_press (GtkWidget *widget,
return FALSE;
}
-static void
-terminal_screen_set_dynamic_title (TerminalScreen *screen,
- const char *title,
- gboolean userset)
+void
+terminal_screen_set_user_title (TerminalScreen *screen,
+ const char *title)
{
TerminalScreenPrivate *priv = screen->priv;
- g_assert (TERMINAL_IS_SCREEN (screen));
-
- if ((priv->user_title && !userset) ||
- (priv->raw_title && title &&
- strcmp (priv->raw_title, title) == 0))
- return;
-
- g_free (priv->raw_title);
- priv->raw_title = g_strdup (title);
- terminal_screen_cook_title (screen);
-}
-
-static void
-terminal_screen_set_dynamic_icon_title (TerminalScreen *screen,
- const char *icon_title,
- gboolean userset)
-{
- TerminalScreenPrivate *priv = screen->priv;
- GObject *object = G_OBJECT (screen);
-
- g_assert (TERMINAL_IS_SCREEN (screen));
+ g_return_if_fail (TERMINAL_IS_SCREEN (screen));
- if ((priv->user_title && !userset) ||
- (priv->icon_title_set &&
- priv->raw_icon_title &&
- icon_title &&
- strcmp (priv->raw_icon_title, icon_title) == 0))
+ if (g_strcmp0 (priv->title, title) == 0)
return;
- g_object_freeze_notify (object);
-
- g_free (priv->raw_icon_title);
- priv->raw_icon_title = g_strdup (icon_title);
- priv->icon_title_set = TRUE;
-
- g_object_notify (object, "icon-title-set");
- terminal_screen_cook_icon_title (screen);
-
- g_object_thaw_notify (object);
-}
-
-void
-terminal_screen_set_override_title (TerminalScreen *screen,
- const char *title)
-{
- TerminalScreenPrivate *priv = screen->priv;
- char *old_title;
-
- old_title = priv->override_title;
- priv->override_title = g_strdup (title);
- g_free (old_title);
+ g_free (priv->title);
+ priv->title = title && title[0] ? g_strdup (title) : NULL;
- terminal_screen_set_dynamic_title (screen, title, FALSE);
- terminal_screen_set_dynamic_icon_title (screen, title, FALSE);
+ g_object_notify (G_OBJECT (screen), "description");
}
const char*
-terminal_screen_get_dynamic_title (TerminalScreen *screen)
+terminal_screen_get_user_title (TerminalScreen *screen)
{
- g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL);
-
- return screen->priv->raw_title;
-}
+ TerminalScreenPrivate *priv;
-const char*
-terminal_screen_get_dynamic_icon_title (TerminalScreen *screen)
-{
g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL);
-
- return screen->priv->raw_icon_title;
+
+ priv = screen->priv;
+
+ return priv->title ? priv->title : _("Terminal");
}
/**
@@ -1752,18 +1570,15 @@ static void
terminal_screen_window_title_changed (VteTerminal *vte_terminal,
TerminalScreen *screen)
{
- terminal_screen_set_dynamic_title (screen,
- vte_terminal_get_window_title (vte_terminal),
- FALSE);
+ g_object_notify (G_OBJECT (screen), "title");
}
static void
terminal_screen_icon_title_changed (VteTerminal *vte_terminal,
TerminalScreen *screen)
{
- terminal_screen_set_dynamic_icon_title (screen,
- vte_terminal_get_icon_title (vte_terminal),
- FALSE);
+ g_object_notify (G_OBJECT (screen), "icon-title");
+ g_object_notify (G_OBJECT (screen), "icon-title-set");
}
static void
@@ -1782,6 +1597,8 @@ terminal_screen_child_exited (VteTerminal *terminal)
priv->child_pid = -1;
priv->pty_fd = -1;
+ g_object_notify (G_OBJECT (screen), "description");
+
action = g_settings_get_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION_KEY);
switch (action)
@@ -1826,24 +1643,6 @@ terminal_screen_child_exited (VteTerminal *terminal)
}
}
-void
-terminal_screen_set_user_title (TerminalScreen *screen,
- const char *text)
-{
- TerminalScreenPrivate *priv = screen->priv;
-
- /* The user set the title to nothing, let's understand that as a
- request to revert to dynamically setting the title again. */
- if (!text || !text[0])
- priv->user_title = FALSE;
- else
- {
- priv->user_title = TRUE;
- terminal_screen_set_dynamic_title (screen, text, TRUE);
- terminal_screen_set_dynamic_icon_title (screen, text, TRUE);
- }
-}
-
static void
terminal_screen_drag_data_received (GtkWidget *widget,
GdkDragContext *context,
diff --git a/src/terminal-screen.h b/src/terminal-screen.h
index e773006..eb4ea72 100644
--- a/src/terminal-screen.h
+++ b/src/terminal-screen.h
@@ -100,19 +100,15 @@ void terminal_screen_set_initial_environment (TerminalScreen *screen,
char **argv);
char ** terminal_screen_get_initial_environment (TerminalScreen *screen);
-const char* terminal_screen_get_raw_title (TerminalScreen *screen);
+const char *terminal_screen_get_user_title (TerminalScreen *screen);
const char* terminal_screen_get_title (TerminalScreen *screen);
const char* terminal_screen_get_icon_title (TerminalScreen *screen);
gboolean terminal_screen_get_icon_title_set (TerminalScreen *screen);
+char * terminal_screen_get_description (TerminalScreen *screen);
void terminal_screen_set_user_title (TerminalScreen *screen,
const char *text);
-void terminal_screen_set_override_title (TerminalScreen *screen,
- const char *title);
-
-const char *terminal_screen_get_dynamic_title (TerminalScreen *screen);
-const char *terminal_screen_get_dynamic_icon_title (TerminalScreen *screen);
char *terminal_screen_get_current_dir (TerminalScreen *screen);
diff --git a/src/terminal-window.c b/src/terminal-window.c
index e91067a..dfc153b 100644
--- a/src/terminal-window.c
+++ b/src/terminal-window.c
@@ -731,12 +731,6 @@ terminal_set_title_dialog_response_cb (GtkWidget *dialog,
gtk_widget_destroy (dialog);
}
-static const char *
-terminal_screen_get_user_title (TerminalScreen *screen)
-{
- return terminal_screen_get_raw_title (screen);
-}
-
static void
action_set_title_cb (GSimpleAction *action,
GVariant *parameter,
@@ -2516,7 +2510,7 @@ terminal_window_init (TerminalWindow *window)
GtkActionGroup *action_group;
GtkAction *action;
GtkUIManager *manager;
- GtkWidget *main_vbox;
+ GtkWidget *main_vbox, *toolbar;
GError *error;
GtkWindowGroup *window_group;
GtkAccelGroup *accel_group;
@@ -2860,11 +2854,14 @@ sync_screen_title (TerminalScreen *screen,
TerminalWindow *window)
{
TerminalWindowPrivate *priv = window->priv;
+ const char *title;
if (screen != priv->active_screen)
return;
- gtk_window_set_title (GTK_WINDOW (window), terminal_screen_get_title (screen));
+ title = terminal_screen_get_title (screen);
+ gtk_window_set_title (GTK_WINDOW (window),
+ title && title[0] ? title : _("Terminal"));
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]