[gnome-terminal] screen: Simplify terminal title handling



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]