summaryrefslogtreecommitdiff
path: root/capplets/appearance
diff options
context:
space:
mode:
Diffstat (limited to 'capplets/appearance')
-rw-r--r--capplets/appearance/appearance-desktop.c29
-rw-r--r--capplets/appearance/theme-installer.c45
2 files changed, 39 insertions, 35 deletions
diff --git a/capplets/appearance/appearance-desktop.c b/capplets/appearance/appearance-desktop.c
index d9381818..2c05694c 100644
--- a/capplets/appearance/appearance-desktop.c
+++ b/capplets/appearance/appearance-desktop.c
@@ -1042,26 +1042,21 @@ static GdkPixbuf *buttons[3];
static void
create_button_images (AppearanceData *data)
{
- GtkWidget *widget = (GtkWidget*)data->wp_view;
- GtkStyle *style = gtk_widget_get_style (widget);
- GtkIconSet *icon_set;
- GdkPixbuf *pixbuf, *pb, *pb2;
- gint i, w, h;
-
- icon_set = gtk_style_lookup_icon_set (style, "gtk-media-play");
- pb = gtk_icon_set_render_icon (icon_set,
- style,
- GTK_TEXT_DIR_RTL,
- GTK_STATE_NORMAL,
+ GtkIconTheme *theme;
+ GdkPixbuf *pixbuf, *pb, *pb2;
+ gint i, w, h;
+
+ theme = gtk_icon_theme_get_default ();
+ pb = gtk_icon_theme_load_icon (theme,
+ "media-playback-start",
GTK_ICON_SIZE_MENU,
- widget,
+ GTK_ICON_LOOKUP_DIR_RTL,
NULL);
- pb2 = gtk_icon_set_render_icon (icon_set,
- style,
- GTK_TEXT_DIR_LTR,
- GTK_STATE_NORMAL,
+
+ pb2 = gtk_icon_theme_load_icon (theme,
+ "media-playback-start",
GTK_ICON_SIZE_MENU,
- widget,
+ GTK_ICON_LOOKUP_DIR_LTR,
NULL);
w = gdk_pixbuf_get_width (pb);
h = gdk_pixbuf_get_height (pb);
diff --git a/capplets/appearance/theme-installer.c b/capplets/appearance/theme-installer.c
index 22226397..68ce08ca 100644
--- a/capplets/appearance/theme-installer.c
+++ b/capplets/appearance/theme-installer.c
@@ -34,6 +34,10 @@
#include "theme-installer.h"
#include "theme-util.h"
+#if !GLIB_CHECK_VERSION(2,70,0)
+#define g_pattern_spec_match_string g_pattern_match_string
+#endif
+
enum {
THEME_INVALID,
THEME_ICON,
@@ -52,18 +56,18 @@ enum {
DIRECTORY
};
-static gboolean
-cleanup_tmp_dir (GIOSchedulerJob *job,
- GCancellable *cancellable,
- const gchar *tmp_dir)
+static void
+cleanup_tmp_dir (GTask *task G_GNUC_UNUSED,
+ gpointer source_object G_GNUC_UNUSED,
+ gpointer task_data,
+ GCancellable *cancellable G_GNUC_UNUSED)
{
GFile *directory;
+ char *tmp_dir = task_data;
directory = g_file_new_for_path (tmp_dir);
capplet_file_delete_recursive (directory, NULL);
g_object_unref (directory);
-
- return FALSE;
}
static int
@@ -88,12 +92,12 @@ file_theme_type (const gchar *dir)
g_free (filename);
pattern = g_pattern_spec_new ("*[Icon Theme]*");
- match = g_pattern_match_string (pattern, file_contents);
+ match = g_pattern_spec_match_string (pattern, file_contents);
g_pattern_spec_free (pattern);
if (match) {
pattern = g_pattern_spec_new ("*Directories=*");
- match = g_pattern_match_string (pattern, file_contents);
+ match = g_pattern_spec_match_string (pattern, file_contents);
g_pattern_spec_free (pattern);
g_free (file_contents);
@@ -112,7 +116,7 @@ file_theme_type (const gchar *dir)
}
pattern = g_pattern_spec_new ("*[X-GNOME-Metatheme]*");
- match = g_pattern_match_string (pattern, file_contents);
+ match = g_pattern_spec_match_string (pattern, file_contents);
g_pattern_spec_free (pattern);
g_free (file_contents);
@@ -548,6 +552,18 @@ end:
}
static void
+theme_cleanup_tmp_dir (char *tmp_dir)
+{
+ GTask *task;
+
+ task = g_task_new (NULL, NULL, NULL, NULL);
+ g_task_set_task_data (task, tmp_dir, g_free);
+ g_task_run_in_thread (task, cleanup_tmp_dir);
+
+ g_object_unref (task);
+}
+
+static void
process_local_theme (GtkWindow *parent,
const char *path)
{
@@ -606,12 +622,7 @@ process_local_theme (GtkWindow *parent,
if (!process_local_theme_archive (parent, filetype, tmp_dir, path)
|| ((dir = g_dir_open (tmp_dir, 0, NULL)) == NULL)) {
- g_io_scheduler_push_job ((GIOSchedulerJobFunc) cleanup_tmp_dir,
- g_strdup (tmp_dir),
- g_free,
- G_PRIORITY_DEFAULT,
- NULL);
- g_free (tmp_dir);
+ theme_cleanup_tmp_dir (tmp_dir);
return;
}
@@ -663,9 +674,7 @@ process_local_theme (GtkWindow *parent,
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
}
- g_io_scheduler_push_job ((GIOSchedulerJobFunc) cleanup_tmp_dir,
- tmp_dir, g_free,
- G_PRIORITY_DEFAULT, NULL);
+ theme_cleanup_tmp_dir (tmp_dir);
}
}