Index: gnome-theme-details.c
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/theme-switcher/gnome-theme-details.c,v
retrieving revision 1.15
diff -u -r1.15 gnome-theme-details.c
--- gnome-theme-details.c	2 Apr 2004 14:33:59 -0000	1.15
+++ gnome-theme-details.c	24 Jul 2004 14:12:43 -0000
@@ -162,21 +162,6 @@
 }
 
 static void
-gnome_theme_installer_run_cb (GtkWidget *button,
-			      GtkWidget *parent_window)
-{
-  gnome_theme_installer_run (parent_window, NULL, FALSE);
-}
-
-
-static void
-gnome_icon_theme_installer_run_cb (GtkWidget *button,
-			      GtkWidget *parent_window)
-{
-  gnome_theme_installer_run (parent_window, NULL, TRUE);
-}
-
-static void
 icon_theme_selection_changed (GtkTreeSelection *selection,
 			     gpointer          data)
 {
@@ -311,20 +296,14 @@
 		   dialog);
 
   /* gtk themes */
-  widget = WID ("control_install_button");
-  g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run_cb), parent);
   widget = WID ("control_manage_button");
   g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_show_manage_themes), dialog);
 
   /* window manager themes */
-  widget = WID ("window_install_button");
-  g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run_cb), parent);
   widget = WID ("window_manage_button");
   g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_window_show_manage_themes), dialog);
 
   /* icon themes */
-  widget = WID ("icon_install_button");
-  g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_icon_theme_installer_run_cb), parent);
   widget = WID ("icon_manage_button");
   g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_icon_show_manage_themes), dialog);
 
Index: gnome-theme-installer.c
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/theme-switcher/gnome-theme-installer.c,v
retrieving revision 1.6
diff -u -r1.6 gnome-theme-installer.c
--- gnome-theme-installer.c	12 Feb 2004 14:22:57 -0000	1.6
+++ gnome-theme-installer.c	24 Jul 2004 14:12:46 -0000
@@ -18,6 +18,70 @@
 #include "file-transfer-dialog.h"
 #include "gnome-theme-installer.h"
 
+enum {
+	THEME_INVALID,
+	THEME_ICON,
+	THEME_GNOME,
+	THEME_GTK,
+	THEME_METACITY
+};
+
+enum {
+	TARGZ,
+	TARBZ
+};
+
+typedef struct {
+	gint theme_type;
+	gint filetype;
+	gchar *filename;
+	gchar *target_dir;
+	gchar *theme_tmp_dir;
+	gchar *user_message;
+} theme_propierties;
+
+
+static int
+file_theme_type(gchar *dir)
+{
+	gchar *file_contents;
+	gchar *filename = NULL;
+	gint file_size;
+	GPatternSpec *pattern;
+	char *uri;
+	GnomeVFSURI *src_uri;
+	
+	filename = g_strdup_printf("%s/index.theme",dir);
+	src_uri = gnome_vfs_uri_new (filename);
+	if (gnome_vfs_uri_exists(src_uri)) {
+		uri = gnome_vfs_get_uri_from_local_path(filename);
+		gnome_vfs_read_entire_file(uri,&file_size,&file_contents);
+		
+		pattern = g_pattern_spec_new("*[Icon Theme]*");
+		if (g_pattern_match_string(pattern,file_contents)) {
+			return THEME_ICON;
+		}
+		
+		pattern = g_pattern_spec_new("*[X-GNOME-Metatheme]*");
+		if (g_pattern_match_string(pattern,file_contents)) {
+			return THEME_GNOME;
+		}
+	}
+	
+	filename = g_strdup_printf("%s/gtk-2.0/gtkrc",dir);
+	src_uri = gnome_vfs_uri_new (filename);
+	if (gnome_vfs_uri_exists(src_uri)) {
+		return THEME_GTK;
+	}
+	
+	filename = g_strdup_printf("%s/metacity-1/metacity-theme-1.xml",dir);
+	src_uri = gnome_vfs_uri_new (filename);
+	if (gnome_vfs_uri_exists(src_uri)) {
+		return THEME_METACITY;
+	}
+	
+	return THEME_INVALID;
+}
 
 static void
 transfer_cancel_cb (GtkWidget *dlg, gchar *path)
@@ -42,17 +106,18 @@
 {
 	int status;
 	gchar *command;
-	gchar *path = data;
-
+	theme_propierties *theme_props = data;
+	
 	/* this should be something more clever and nonblocking */
-	command = g_strdup_printf ("sh -c 'gzip -d -c < \"%s\" | tar xf - -C \"%s/.themes\"'",
-				   path, g_get_home_dir ());
-	if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0)
-		gnome_vfs_unlink (path);
-	g_free (command);
-	g_free (path);
-
-	return FALSE;
+	command = g_strdup_printf ("sh -c 'cd \"%s\"; gzip -d -c < \"%s\" | tar xf - '",
+				   g_get_tmp_dir(),theme_props->filename );
+	if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0) {
+		g_free (command);
+		return TRUE;
+	} else {	
+		g_free (command);
+		return FALSE;
+	}
 }
 
 
@@ -71,28 +136,152 @@
 {
 	int status;
 	gchar *command;
-	gchar *path = data;
+	theme_propierties *theme_props = data;
 
 	/* this should be something more clever and nonblocking */
-	command = g_strdup_printf ("sh -c 'bzip2 -d -c < \"%s\" | tar xf - -C \"%s/.themes\"'",
-				   path, g_get_home_dir ());
-	if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0)
-		gnome_vfs_unlink (path);
-	g_free (command);
-	g_free (path);
-
-	return FALSE;
+	command = g_strdup_printf ("sh -c 'cd \"%s\"; bzip2 -d -c < \"%s\" | tar xf - '",
+				   g_get_tmp_dir(), theme_props->filename);
+	if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0) {
+		g_free (command);
+		g_free (theme_props);
+		return TRUE;
+	} else {
+		g_free (command);
+		g_free (theme_props);
+		return FALSE;
+	}
 }
 
 static void
 transfer_done_cb (GtkWidget *dlg, gchar *path)
 {
+	gchar *command,**dir, *first_line;
+	int status,theme_type;
+	theme_propierties *theme_props;
+	GnomeVFSURI *theme_source_dir, *theme_dest_dir;
+	
+	theme_props =g_new(theme_propierties,1);
 	int len = strlen (path);
-	if (path && len > 7 && !strcmp (path + len - 7, ".tar.gz"))
-		g_idle_add (transfer_done_targz_idle_cb, path);
-	if (path && len > 8 && !strcmp (path + len - 8, ".tar.bz2"))
-		g_idle_add (transfer_done_tarbz2_idle_cb, path);
+	if (path && len > 7 && !strcmp (path + len - 7, ".tar.gz")) {
+		command = g_strdup_printf ("sh -c 'gzip -d -c < \"%s\" | tar ft -  | head -1'",
+				path);
+		theme_props->filetype=TARGZ;
+	} else if (path && len > 8 && !strcmp (path + len - 8, ".tar.bz2")) {
+		command = g_strdup_printf ("sh -c 'bzip2 -d -c < \"%s\" | tar ft - | head -1'",
+					path);
+		theme_props->filetype=TARBZ;
+	} else {
+		GtkWidget *dialog;
+				
+		dialog = gtk_message_dialog_new (NULL,
+						GTK_DIALOG_MODAL,
+						GTK_MESSAGE_ERROR,
+						GTK_BUTTONS_OK,
+						_("The file format is invalid"));
+		gtk_dialog_run (GTK_DIALOG (dialog));
+		gtk_widget_destroy (dialog);			
+		return;	
+	}
 	gtk_widget_destroy (dlg);
+	
+	
+	/* Uncompress the file in the temp directory */
+	theme_props->filename=g_strdup(path);
+	if (theme_props->filetype == TARBZ ) {
+			if (!transfer_done_tarbz2_idle_cb(theme_props)) {
+				GtkWidget *dialog;
+				
+				dialog = gtk_message_dialog_new (NULL,
+							GTK_DIALOG_MODAL,
+							GTK_MESSAGE_ERROR,
+				   			GTK_BUTTONS_OK,
+							_("Installation Failed"));
+				gtk_dialog_run (GTK_DIALOG (dialog));
+				gtk_widget_destroy (dialog);			
+				return;	
+			}
+	}
+	
+	if (theme_props->filetype == TARGZ ) {
+			if (!transfer_done_targz_idle_cb(theme_props)) {
+				GtkWidget *dialog;
+				
+				dialog = gtk_message_dialog_new (NULL,
+							GTK_DIALOG_MODAL,
+							GTK_MESSAGE_ERROR,
+				   			GTK_BUTTONS_OK,
+							_("Installation Failed"));
+				gtk_dialog_run (GTK_DIALOG (dialog));
+				gtk_widget_destroy (dialog);			
+				return;	
+			}	
+	}
+	
+	/* What type of theme it is ? */	
+	if (g_spawn_command_line_sync (command, &first_line, NULL, &status, NULL) && status == 0) {
+		dir = g_strsplit(g_strchomp(first_line),"/",0);
+		theme_props->theme_tmp_dir=g_strdup(g_build_filename(g_get_tmp_dir(),dir[0],NULL));
+		
+		theme_type = file_theme_type(theme_props->theme_tmp_dir);
+		gnome_vfs_unlink (theme_props->filename); 
+		if (theme_type == THEME_ICON) {
+			theme_props->target_dir=g_strdup_printf("%s/.icons/%s",g_get_home_dir(),dir[0]);	
+			theme_props->user_message=g_strdup_printf(_("Icon Theme %s correctly installed.\nYou can select it in the theme details."),dir[0]);
+		} else if (theme_type == THEME_GNOME) {
+			theme_props->target_dir = g_strdup_printf("%s/.themes/%s",g_get_home_dir(),dir[0]);
+			theme_props->user_message=g_strdup_printf(_("Gnome Theme %s correctly installed"),dir[0]);
+		} else if (theme_type == THEME_METACITY) {
+			theme_props->target_dir = g_strdup_printf("%s/.themes/%s",g_get_home_dir(),dir[0]);
+			theme_props->user_message=g_strdup_printf(_("Windows Border Theme %s correctly installed.\nYou can select it in the theme details."),dir[0]);
+		} else if (theme_type == THEME_GTK) {
+			theme_props->target_dir = g_strdup_printf("%s/.themes/%s",g_get_home_dir(),dir[0]);
+			theme_props->user_message=g_strdup_printf(_("Controls Theme %s correctly installed.\nYou can select it in the theme details."),dir[0]);
+		} else {
+			GtkWidget *dialog;
+				
+			dialog = gtk_message_dialog_new (NULL,
+			  	       GTK_DIALOG_MODAL,
+				       GTK_MESSAGE_ERROR,
+				       GTK_BUTTONS_OK,
+				       _("The file format is invalid"));
+			gtk_dialog_run (GTK_DIALOG (dialog));
+			gtk_widget_destroy (dialog);			
+			return;	
+		}
+		/* Move the Dir to the target dir */
+		theme_source_dir = gnome_vfs_uri_new (theme_props->theme_tmp_dir);
+		theme_dest_dir = gnome_vfs_uri_new (theme_props->target_dir);
+		
+		if (gnome_vfs_xfer_uri (theme_source_dir,theme_dest_dir,
+								GNOME_VFS_XFER_DELETE_ITEMS | GNOME_VFS_XFER_RECURSIVE | GNOME_VFS_XFER_REMOVESOURCE,
+								GNOME_VFS_XFER_ERROR_MODE_ABORT,
+								GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
+								NULL,NULL) != GNOME_VFS_OK) {
+			GtkWidget *dialog;
+				
+			dialog = gtk_message_dialog_new (NULL,
+						GTK_DIALOG_MODAL,
+						GTK_MESSAGE_ERROR,
+						GTK_BUTTONS_OK,
+						_("Installation Failed"));
+			gtk_dialog_run (GTK_DIALOG (dialog));
+			gtk_widget_destroy (dialog);			
+			return;	
+		} else {
+			GtkWidget *dialog;
+						
+			dialog = gtk_message_dialog_new (NULL,
+			  	       GTK_DIALOG_MODAL,
+				       GTK_MESSAGE_INFO,
+				       GTK_BUTTONS_OK,
+				       theme_props->user_message );
+			gtk_dialog_run (GTK_DIALOG (dialog));
+			gtk_widget_destroy (dialog);			
+			return;	
+		}
+		gnome_vfs_remove_directory(theme_props->theme_tmp_dir);
+	}
+	g_free(theme_props);
 }
 
 static void
@@ -152,11 +341,9 @@
 		src_uri = gnome_vfs_uri_new (filename);
 		base = gnome_vfs_uri_extract_short_name (src_uri);
 		src = g_list_append (NULL, src_uri);
-		if (icon_theme)
-			path = g_build_filename (g_get_home_dir (), ".icons", base, NULL);
-		else
-			path = g_build_filename (g_get_home_dir (), ".themes", base, NULL);
-
+		
+		path = g_build_filename(g_get_tmp_dir(),base,NULL); 
+		
 		/* To avoid the copy of /root/.themes to /root/.themes/.themes 
 		 * which causes an infinite loop. The user asks to transfer the all 
          * contents of a folder, to a folder under itseld. So ignore the 		
@@ -205,7 +392,7 @@
 }
 
 void
-gnome_theme_installer_run (GtkWidget *parent, gchar *filename, gboolean icon_theme)
+gnome_theme_installer_run (GtkWidget *parent, gchar *filename)
 {
 	static gboolean running_theme_install = FALSE;
 	GladeXML *dialog;
@@ -219,7 +406,7 @@
 	dialog = glade_xml_new (GLADEDIR "/theme-install.glade", NULL, NULL);
 	widget = WID ("install_dialog");
 	
-	g_object_set_data (G_OBJECT (widget), "icon_theme", GINT_TO_POINTER (icon_theme));
 	g_signal_connect (G_OBJECT (widget), "response", G_CALLBACK (install_dialog_response), dialog);
 	gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (parent));
 	gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ON_PARENT);
Index: gnome-theme-installer.h
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/theme-switcher/gnome-theme-installer.h,v
retrieving revision 1.2
diff -u -r1.2 gnome-theme-installer.h
--- gnome-theme-installer.h	16 Jan 2003 07:40:29 -0000	1.2
+++ gnome-theme-installer.h	24 Jul 2004 14:12:46 -0000
@@ -24,6 +24,6 @@
 
 #include <gtk/gtk.h>
 
-void gnome_theme_installer_run (GtkWidget *parent, gchar *filename, gboolean icon_theme);
+void gnome_theme_installer_run (GtkWidget *parent, gchar *filename);
 
 #endif /* GNOME_THEME_INSTALLER_H */
Index: gnome-theme-manager.c
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/theme-switcher/gnome-theme-manager.c,v
retrieving revision 1.48
diff -u -r1.48 gnome-theme-manager.c
--- gnome-theme-manager.c	20 Jun 2004 11:02:04 -0000	1.48
+++ gnome-theme-manager.c	24 Jul 2004 14:12:48 -0000
@@ -1071,7 +1071,7 @@
 gnome_meta_theme_installer_run_cb (GtkWidget *button,
 				   GtkWidget *parent_window)
 {
-  gnome_theme_installer_run (parent_window, NULL, FALSE);
+  gnome_theme_installer_run (parent_window, NULL);
 }
 
 
@@ -1389,7 +1389,7 @@
 		gnome_vfs_uri_list_unref (uris);
 	}
 
-	gnome_theme_installer_run (widget, filename, FALSE);
+	gnome_theme_installer_run (widget, filename);
 	g_free (filename);
 }
 
Index: theme-properties.glade
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/theme-switcher/theme-properties.glade,v
retrieving revision 1.30
diff -u -r1.30 theme-properties.glade
--- theme-properties.glade	20 Jun 2004 11:02:04 -0000	1.30
+++ theme-properties.glade	24 Jul 2004 14:12:53 -0000
@@ -12,6 +12,11 @@
   <property name="modal">False</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -33,6 +38,7 @@
 	      <property name="label">gtk-help</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
 	      <property name="response_id">-11</property>
 	    </widget>
 	  </child>
@@ -44,6 +50,7 @@
 	      <property name="label">gtk-close</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
 	      <property name="response_id">-7</property>
 	    </widget>
 	  </child>
@@ -112,6 +119,7 @@
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
 
 		      <child>
 			<widget class="GtkAlignment" id="alignment8">
@@ -120,6 +128,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xscale">0</property>
 			  <property name="yscale">0</property>
+			  <property name="top_padding">0</property>
+			  <property name="bottom_padding">0</property>
+			  <property name="left_padding">0</property>
+			  <property name="right_padding">0</property>
 
 			  <child>
 			    <widget class="GtkHBox" id="hbox15">
@@ -181,6 +193,7 @@
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
 
 		      <child>
 			<widget class="GtkAlignment" id="alignment7">
@@ -189,6 +202,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xscale">0</property>
 			  <property name="yscale">0</property>
+			  <property name="top_padding">0</property>
+			  <property name="bottom_padding">0</property>
+			  <property name="left_padding">0</property>
+			  <property name="right_padding">0</property>
 
 			  <child>
 			    <widget class="GtkHBox" id="hbox14">
@@ -250,6 +267,7 @@
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
 
 		      <child>
 			<widget class="GtkAlignment" id="alignment9">
@@ -258,6 +276,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xscale">0</property>
 			  <property name="yscale">0</property>
+			  <property name="top_padding">0</property>
+			  <property name="bottom_padding">0</property>
+			  <property name="left_padding">0</property>
+			  <property name="right_padding">0</property>
 
 			  <child>
 			    <widget class="GtkHBox" id="hbox16">
@@ -328,6 +350,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xscale">0</property>
 			  <property name="yscale">0</property>
+			  <property name="top_padding">0</property>
+			  <property name="bottom_padding">0</property>
+			  <property name="left_padding">0</property>
+			  <property name="right_padding">0</property>
 
 			  <child>
 			    <widget class="GtkHBox" id="hbox26">
@@ -480,6 +506,7 @@
 		      <property name="label" translatable="yes">Apply _Font</property>
 		      <property name="use_underline">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -547,6 +574,7 @@
 		      <property name="label" translatable="yes">Apply _Background</property>
 		      <property name="use_underline">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -614,6 +642,7 @@
 		      <property name="label" translatable="yes">Apply _Font</property>
 		      <property name="use_underline">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -629,6 +658,7 @@
 		      <property name="label" translatable="yes">Apply _Background</property>
 		      <property name="use_underline">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -687,6 +717,11 @@
   <property name="modal">False</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -708,6 +743,7 @@
 	      <property name="label">gtk-help</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
 	      <property name="response_id">-11</property>
 	    </widget>
 	  </child>
@@ -719,6 +755,7 @@
 	      <property name="label">gtk-close</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
 	      <property name="response_id">-7</property>
 	    </widget>
 	  </child>
@@ -794,79 +831,11 @@
 		      <property name="spacing">6</property>
 
 		      <child>
-			<widget class="GtkButton" id="control_install_button">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-
-			  <child>
-			    <widget class="GtkAlignment" id="alignment15">
-			      <property name="visible">True</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xscale">0</property>
-			      <property name="yscale">0</property>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox22">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">2</property>
-
-				  <child>
-				    <widget class="GtkImage" id="image14">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-add</property>
-				      <property name="icon_size">4</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label49">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">_Install Theme...</property>
-				      <property name="use_underline">True</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
 			<widget class="GtkButton" id="control_manage_button">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
 
 			  <child>
 			    <widget class="GtkAlignment" id="alignment14">
@@ -875,6 +844,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xscale">0</property>
 			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
 
 			      <child>
 				<widget class="GtkHBox" id="hbox21">
@@ -1071,79 +1044,11 @@
 		      <property name="spacing">6</property>
 
 		      <child>
-			<widget class="GtkButton" id="window_install_button">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-
-			  <child>
-			    <widget class="GtkAlignment" id="alignment10">
-			      <property name="visible">True</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xscale">0</property>
-			      <property name="yscale">0</property>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox17">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">2</property>
-
-				  <child>
-				    <widget class="GtkImage" id="image9">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-add</property>
-				      <property name="icon_size">4</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label44">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">_Install Theme...</property>
-				      <property name="use_underline">True</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
 			<widget class="GtkButton" id="window_manage_button">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
 
 			  <child>
 			    <widget class="GtkAlignment" id="alignment11">
@@ -1152,6 +1057,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xscale">0</property>
 			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
 
 			      <child>
 				<widget class="GtkHBox" id="hbox18">
@@ -1348,79 +1257,11 @@
 		      <property name="spacing">6</property>
 
 		      <child>
-			<widget class="GtkButton" id="icon_install_button">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-
-			  <child>
-			    <widget class="GtkAlignment" id="alignment12">
-			      <property name="visible">True</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xscale">0</property>
-			      <property name="yscale">0</property>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox19">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">2</property>
-
-				  <child>
-				    <widget class="GtkImage" id="image11">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-add</property>
-				      <property name="icon_size">4</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label46">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">_Install Theme...</property>
-				      <property name="use_underline">True</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
 			<widget class="GtkButton" id="icon_manage_button">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
 
 			  <child>
 			    <widget class="GtkAlignment" id="alignment13">
@@ -1429,6 +1270,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xscale">0</property>
 			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
 
 			      <child>
 				<widget class="GtkHBox" id="hbox20">
@@ -1593,6 +1438,11 @@
   <property name="modal">True</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -1614,6 +1464,7 @@
 	      <property name="label">gtk-cancel</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
 	      <property name="response_id">-6</property>
 	    </widget>
 	  </child>
@@ -1627,6 +1478,7 @@
 	      <property name="label">gtk-save</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
 	      <property name="response_id">-5</property>
 	    </widget>
 	  </child>
@@ -1759,6 +1611,8 @@
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="editable">True</property>
+			  <property name="overwrite">False</property>
+			  <property name="accepts_tab">True</property>
 			  <property name="justification">GTK_JUSTIFY_LEFT</property>
 			  <property name="wrap_mode">GTK_WRAP_WORD</property>
 			  <property name="cursor_visible">True</property>
