don't delete ~/.icons when deleting the last icon theme (bug #543763)

2008-07-20  Jens Granseuer  <jensgr@gmx.net>

	* theme-util.c: (theme_delete): don't delete ~/.icons when deleting
	the last icon theme (bug #543763)

svn path=/trunk/; revision=8791
This commit is contained in:
Jens Granseuer 2008-07-20 09:38:36 +00:00 committed by Jens Granseuer
parent 8e7530a1cf
commit dfb3ffda0c
2 changed files with 17 additions and 4 deletions

View file

@ -1,3 +1,8 @@
2008-07-20 Jens Granseuer <jensgr@gmx.net>
* theme-util.c: (theme_delete): don't delete ~/.icons when deleting
the last icon theme (bug #543763)
2008-07-15 Matthias Clasen <mclasen@redhat.com>
Bug 533611 - add notification themes to the metatheme format

View file

@ -126,6 +126,7 @@ theme_delete (const gchar *name, ThemeType type)
gint response;
GnomeThemeCommonInfo *theme;
GFile *dir;
gboolean del_empty_parent;
dialog = (GtkDialog *) gtk_message_dialog_new (NULL,
GTK_DIALOG_MODAL,
@ -138,6 +139,10 @@ theme_delete (const gchar *name, ThemeType type)
if (response == GTK_RESPONSE_CANCEL)
return FALSE;
/* Most theme types are put into separate subdirectories. For those
we want to delete those directories as well. */
del_empty_parent = TRUE;
switch (type) {
case THEME_TYPE_GTK:
theme = (GnomeThemeCommonInfo *) gnome_theme_info_find (name);
@ -147,6 +152,7 @@ theme_delete (const gchar *name, ThemeType type)
case THEME_TYPE_ICON:
theme = (GnomeThemeCommonInfo *) gnome_theme_icon_info_find (name);
theme_dir = g_path_get_dirname (theme->path);
del_empty_parent = FALSE;
break;
case THEME_TYPE_WINDOW:
@ -181,10 +187,12 @@ theme_delete (const gchar *name, ThemeType type)
gtk_widget_destroy (info_dialog);
rc = FALSE;
} else {
/* also delete empty parent directories */
GFile *parent = g_file_get_parent (dir);
g_file_delete (parent, NULL, NULL);
g_object_unref (parent);
if (del_empty_parent) {
/* also delete empty parent directories */
GFile *parent = g_file_get_parent (dir);
g_file_delete (parent, NULL, NULL);
g_object_unref (parent);
}
rc = TRUE;
}