? INSTALL
? autogen1.log
? compile
? depcomp
? install-sh
? make-install1.log
? make1.log
? missing
? help/C/local
? help/de/local
? help/es/local
? help/fr/local
? help/it/local
? help/ja/local
? help/ko/local
? help/ro/local
? help/sv/local
? help/uk/Makefile
? help/uk/Makefile.in
? help/uk/gnome-terminal-uk.omf.out
? help/uk/local
? help/uk/omf_timestamp
? help/zh_CN/local
? help/zh_TW/local
? po/.intltool-merge-cache
? src/.deps
? src/.libs
? src/skey/.deps
? src/skey/.libs
? src/skey/btoe.lo
? src/skey/libskey.la
? src/skey/md4.lo
? src/skey/md5.lo
? src/skey/sha1.lo
? src/skey/skey.lo
? src/skey/skeyutil.lo
? src/skey/testskey
Index: src/gnome-terminal.glade2
===================================================================
RCS file: /cvs/gnome/gnome-terminal/src/gnome-terminal.glade2,v
retrieving revision 1.55
diff -u -p -p -r1.55 gnome-terminal.glade2
--- src/gnome-terminal.glade2	21 Sep 2005 16:37:59 -0000	1.55
+++ src/gnome-terminal.glade2	29 Nov 2005 00:44:24 -0000
@@ -1184,7 +1184,26 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkHBox" id="hbox3">
+			<widget class="GtkCheckButton" id="system-icon-checkbutton">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Use icon from s_ystem theme</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		     </child>
+
+		     <child>
+			<widget class="GtkHBox" id="icon-hbox">
 			  <property name="visible">True</property>
 			  <property name="homogeneous">False</property>
 			  <property name="spacing">12</property>
Index: src/gnome-terminal.schemas.in
===================================================================
RCS file: /cvs/gnome/gnome-terminal/src/gnome-terminal.schemas.in,v
retrieving revision 1.42
diff -u -p -p -r1.42 gnome-terminal.schemas.in
--- src/gnome-terminal.schemas.in	20 Nov 2005 15:06:33 -0000	1.42
+++ src/gnome-terminal.schemas.in	29 Nov 2005 00:44:24 -0000
@@ -611,6 +611,20 @@
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/gnome-terminal/profiles/Default/use_system_icon</key>
+      <applyto>/apps/gnome-terminal/profiles/Default/use_system_icon</applyto>
+      <owner>gnome-terminal</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+         <short>Whether to use the system terminal icon</short>
+         <long>
+          If true, the terminal will use the desktop-global standard
+          icon.
+         </long>
+      </locale>
+    </schema>
 
     <schema>
       <key>/schemas/apps/gnome-terminal/profiles/Default/use_skey</key>
Index: src/profile-editor.c
===================================================================
RCS file: /cvs/gnome/gnome-terminal/src/profile-editor.c,v
retrieving revision 1.54
diff -u -p -p -r1.54 profile-editor.c
--- src/profile-editor.c	19 Sep 2005 08:38:18 -0000	1.54
+++ src/profile-editor.c	29 Nov 2005 00:44:26 -0000
@@ -137,6 +137,8 @@ static void       profile_editor_update_
                                                               TerminalProfile *profile);
 static void       profile_editor_update_use_system_font      (GtkWidget       *widget,
                                                               TerminalProfile *profile);
+static void       profile_editor_update_use_system_icon      (GtkWidget       *widget,
+                                                              TerminalProfile *profile);
 static void       profile_editor_update_font                 (GtkWidget       *widget,
                                                               TerminalProfile *profile);
 
@@ -734,6 +736,14 @@ use_system_font_toggled (GtkWidget      
 }
 
 static void
+use_system_icon_toggled (GtkWidget       *checkbutton,
+                         TerminalProfile *profile)
+{
+  terminal_profile_set_use_system_icon (profile,
+                                        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)));
+}
+
+static void
 font_set (GtkWidget       *fontpicker,
           TerminalProfile *profile)
 {
@@ -1186,6 +1196,12 @@ terminal_profile_edit (TerminalProfile *
                         G_CALLBACK (use_system_font_toggled),
                         profile);
 
+      w = glade_xml_get_widget (xml, "system-icon-checkbutton");
+      profile_editor_update_use_system_icon (editor, profile);
+      g_signal_connect (G_OBJECT (w), "toggled",
+                        G_CALLBACK (use_system_icon_toggled),
+                        profile);
+
       
       i = 0;
       while (i < TERMINAL_PALETTE_SIZE)
@@ -1391,6 +1407,15 @@ profile_editor_update_sensitivity (GtkWi
       gtk_widget_set_sensitive (w, FALSE);
     }
 
+  if (!terminal_profile_get_use_system_icon (profile))
+    {
+      set_insensitive (editor, "icon-hbox", mask->icon_file);
+    }
+  else
+    {
+      w = profile_editor_get_widget (editor, "icon-hbox");
+      gtk_widget_set_sensitive (w, FALSE);
+    }
 
   if (terminal_profile_get_use_theme_colors (profile))
     {
@@ -2044,6 +2069,18 @@ profile_editor_update_use_system_font (G
   
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
                                 terminal_profile_get_use_system_font (profile));
+}
+
+static void
+profile_editor_update_use_system_icon (GtkWidget       *editor,
+                                       TerminalProfile *profile)
+{
+  GtkWidget *w;
+
+  w = profile_editor_get_widget (editor, "system-icon-checkbutton");
+  
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
+                                terminal_profile_get_use_system_icon (profile));
 }
 
 static void
Index: src/terminal-profile.c
===================================================================
RCS file: /cvs/gnome/gnome-terminal/src/terminal-profile.c,v
retrieving revision 1.33
diff -u -p -p -r1.33 terminal-profile.c
--- src/terminal-profile.c	19 Aug 2005 20:51:06 -0000	1.33
+++ src/terminal-profile.c	29 Nov 2005 00:44:26 -0000
@@ -68,6 +68,7 @@
 #define KEY_DELETE_BINDING "delete_binding"
 #define KEY_USE_THEME_COLORS "use_theme_colors"
 #define KEY_USE_SYSTEM_FONT "use_system_font"
+#define KEY_USE_SYSTEM_ICON "use_system_icon"
 #define KEY_USE_SKEY "use_skey"
 #define KEY_FONT "font"
 
@@ -128,6 +129,7 @@ struct _TerminalProfilePrivate
   guint scroll_background : 1;
   guint use_theme_colors : 1;
   guint use_system_font : 1;
+  guint use_system_icon : 1;
   guint use_skey : 1;
   guint forgotten : 1;
 };
@@ -291,6 +293,7 @@ terminal_profile_init (TerminalProfile *
   profile->priv->delete_binding = TERMINAL_ERASE_ESCAPE_SEQUENCE;
   profile->priv->use_theme_colors = TRUE;
   profile->priv->use_system_font = TRUE;
+  profile->priv->use_system_icon = TRUE;
   profile->priv->use_skey = TRUE;
   profile->priv->font = pango_font_description_new ();
   pango_font_description_set_family (profile->priv->font,
@@ -1449,6 +1452,33 @@ terminal_profile_set_use_system_font (Te
 }
 
 gboolean
+terminal_profile_get_use_system_icon (TerminalProfile *profile)
+{
+  g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE);
+
+  return profile->priv->use_system_icon;
+}
+
+void
+terminal_profile_set_use_system_icon (TerminalProfile *profile,
+                                      gboolean         setting)
+{
+  char *key;
+
+  RETURN_IF_NOTIFYING (profile);
+  
+  key = gconf_concat_dir_and_key (profile->priv->profile_dir,
+                                  KEY_USE_SYSTEM_ICON);
+  
+  gconf_client_set_bool (profile->priv->conf,
+                         key,
+                         setting,
+                         NULL);
+
+  g_free (key);
+}
+
+gboolean
 terminal_profile_get_use_skey (TerminalProfile *profile)
 {
   g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE);
@@ -1991,6 +2021,7 @@ terminal_profile_update (TerminalProfile
   UPDATE_STRING  (KEY_DELETE_BINDING,       delete_binding);
   UPDATE_BOOLEAN (KEY_USE_THEME_COLORS,     use_theme_colors);
   UPDATE_BOOLEAN (KEY_USE_SYSTEM_FONT,      use_system_font);
+  UPDATE_BOOLEAN (KEY_USE_SYSTEM_ICON,      use_system_icon);
   UPDATE_STRING  (KEY_FONT,                 font);
   
 #undef UPDATE_BOOLEAN
@@ -2137,6 +2168,7 @@ else if (strcmp (key, KName) == 0)      
      UPDATE_STRING  (KEY_DELETE_BINDING,         delete_binding,         NULL);
      UPDATE_BOOLEAN (KEY_USE_THEME_COLORS,       use_theme_colors,       TRUE);
      UPDATE_BOOLEAN (KEY_USE_SYSTEM_FONT,        use_system_font,        TRUE);
+     UPDATE_BOOLEAN (KEY_USE_SYSTEM_ICON,        use_system_icon,        TRUE);
      UPDATE_STRING  (KEY_FONT,                   font,                   NULL);
    }
   
@@ -2867,6 +2899,14 @@ terminal_profile_create (TerminalProfile
                                   KEY_USE_SYSTEM_FONT);
   gconf_client_set_bool (base_profile->priv->conf,
                          key, base_profile->priv->use_system_font,
+                         &err);
+  BAIL_OUT_CHECK ();
+
+  g_free (key);
+  key = gconf_concat_dir_and_key (profile_dir,
+                                  KEY_USE_SYSTEM_ICON);
+  gconf_client_set_bool (base_profile->priv->conf,
+                         key, base_profile->priv->use_system_icon,
                          &err);
   BAIL_OUT_CHECK ();
 
Index: src/terminal-profile.h
===================================================================
RCS file: /cvs/gnome/gnome-terminal/src/terminal-profile.h,v
retrieving revision 1.23
diff -u -p -p -r1.23 terminal-profile.h
--- src/terminal-profile.h	2 Jul 2005 00:06:55 -0000	1.23
+++ src/terminal-profile.h	29 Nov 2005 00:44:26 -0000
@@ -65,6 +65,7 @@ typedef struct
   unsigned int delete_binding : 1;
   unsigned int use_theme_colors : 1;
   unsigned int use_system_font : 1;
+  unsigned int use_system_icon : 1;
   unsigned int font : 1;
 } TerminalSettingMask;
 
@@ -184,6 +185,7 @@ TerminalEraseBinding   terminal_profile_
 
 gboolean               terminal_profile_get_use_theme_colors      (TerminalProfile *profile);
 gboolean               terminal_profile_get_use_system_font       (TerminalProfile *profile);
+gboolean               terminal_profile_get_use_system_icon       (TerminalProfile *profile);
 gboolean               terminal_profile_get_use_skey              (TerminalProfile *profile);
 const PangoFontDescription* terminal_profile_get_font             (TerminalProfile *profile);
 
@@ -256,6 +258,9 @@ void terminal_profile_set_use_theme_colo
 
 
 void terminal_profile_set_use_system_font       (TerminalProfile        *profile,
+						 gboolean                setting);
+
+void terminal_profile_set_use_system_icon       (TerminalProfile        *profile,
 						 gboolean                setting);
 
 void terminal_profile_set_use_skey              (TerminalProfile        *profile,
Index: src/terminal-window.c
===================================================================
RCS file: /cvs/gnome/gnome-terminal/src/terminal-window.c,v
retrieving revision 1.111
diff -u -p -p -r1.111 terminal-window.c
--- src/terminal-window.c	20 Nov 2005 15:06:34 -0000	1.111
+++ src/terminal-window.c	29 Nov 2005 00:44:28 -0000
@@ -79,6 +79,8 @@ struct _TerminalWindowPrivate
   guint use_default_menubar_visibility : 1;
   guint use_mnemonics : 1;   /* config key value */
   guint using_mnemonics : 1; /* current menubar state */
+  GtkIconTheme *icon_theme;
+  GdkPixbuf *theme_icon;
 
   /* FIXME we brokenly maintain this flag here instead of
    * being event-driven, because it's too annoying to be
@@ -187,6 +189,8 @@ static void zoom_out_callback           
                                            TerminalWindow *window);
 static void zoom_normal_callback          (GtkWidget      *menuitem,
                                            TerminalWindow *window);
+static void icon_theme_changed_callback   (GtkIconTheme *icon_theme,
+                                           TerminalWindow *window);
 static void set_title_callback            (GtkWidget      *menuitem,
                                            TerminalWindow *window);
 static void change_encoding_callback      (GtkWidget      *menu_item,
@@ -1076,6 +1080,12 @@ terminal_window_init (TerminalWindow *wi
   window->priv->use_default_menubar_visibility = TRUE;  
 
   reset_menubar_labels (window);
+
+  window->priv->icon_theme = gtk_icon_theme_get_default ();
+  g_signal_connect (G_OBJECT (window->priv->icon_theme), "changed",
+                    G_CALLBACK (icon_theme_changed_callback), window);
+  
+  icon_theme_changed_callback (window->priv->icon_theme, window);
   
   gtk_widget_show_all (window->priv->main_vbox);
 }
@@ -1111,6 +1121,9 @@ terminal_window_finalize (GObject *objec
   if (window->priv->icon)
     g_object_unref (G_OBJECT (window->priv->icon));
 
+  if (window->priv->theme_icon)
+    g_object_unref (G_OBJECT (window->priv->theme_icon));
+
   g_free (window->priv->startup_id);
   
   g_free (window->priv);
@@ -1329,6 +1342,22 @@ title_changed_callback (TerminalScreen *
 }
 
 static void
+icon_theme_changed_callback (GtkIconTheme *icon_theme,
+                             TerminalWindow *window)
+{
+  if (window->priv->theme_icon)
+    g_object_unref (G_OBJECT (window->priv->theme_icon));
+
+  window->priv->theme_icon = gtk_icon_theme_load_icon (window->priv->icon_theme, "utilities-terminal",
+                                       48, GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
+  if (window->priv->theme_icon == NULL)
+    window->priv->theme_icon = gtk_icon_theme_load_icon (window->priv->icon_theme, "gnome-terminal",
+                                                         48, GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
+
+  terminal_window_update_icon (window);
+}
+
+static void
 icon_title_changed_callback (TerminalScreen *screen,
                              TerminalWindow *window)
 {
@@ -1872,8 +1901,11 @@ terminal_window_update_icon (TerminalWin
       return;
     }
   
-  new_icon = terminal_profile_get_icon (profile);
-  
+  if (terminal_profile_get_use_system_icon (profile))
+    new_icon = window->priv->theme_icon;
+  else
+    new_icon = terminal_profile_get_icon (profile);
+
   if (window->priv->icon != new_icon)
     {
       if (new_icon)
@@ -1886,6 +1918,7 @@ terminal_window_update_icon (TerminalWin
 
       gtk_window_set_icon (GTK_WINDOW (window), window->priv->icon);
     }
+    
 }
 
 void
