summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkapplication.c3
-rw-r--r--gtk/gtkicontheme.c15
-rw-r--r--gtk/gtkiconthemeprivate.h2
3 files changed, 13 insertions, 7 deletions
diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c
index 82eea35e73..6bea5400b6 100644
--- a/gtk/gtkapplication.c
+++ b/gtk/gtkapplication.c
@@ -38,7 +38,7 @@
#include "gtkmain.h"
#include "gtkrecentmanager.h"
#include "gtkaccelmapprivate.h"
-#include "gtkicontheme.h"
+#include "gtkiconthemeprivate.h"
#include "gtkbuilder.h"
#include "gtkshortcutswindow.h"
#include "gtkintl.h"
@@ -218,6 +218,7 @@ gtk_application_load_resources (GtkApplication *application)
iconspath = g_strconcat (base_path, "/icons/", NULL);
gtk_icon_theme_add_resource_path (default_theme, iconspath);
g_free (iconspath);
+ gtk_icon_theme_ensure_loaded (default_theme);
}
/* Load the menus */
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 38a0bd2761..820ef73348 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -762,7 +762,6 @@ do_theme_change (GtkIconTheme *self)
blow_themes (self);
queue_theme_changed (self);
-
}
static void
@@ -1270,6 +1269,7 @@ load_themes (GtkIconTheme *self)
IconThemeDirMtime *dir_mtime;
GStatBuf stat_buf;
GList *d;
+ gint64 before = g_get_monotonic_time ();
if (self->current_theme)
insert_theme (self, self->current_theme);
@@ -1356,6 +1356,9 @@ load_themes (GtkIconTheme *self)
g_message ("%s", s->str);
g_string_free (s, TRUE);
});
+
+ self->loading_themes = FALSE;
+ gdk_profiler_add_mark (before * 1000, (g_get_monotonic_time () - before) * 1000, "icon theme load", self->current_theme);
}
static void
@@ -1363,7 +1366,6 @@ ensure_valid_themes (GtkIconTheme *self)
{
GTimeVal tv;
gboolean was_valid = self->themes_valid;
- gint64 before = g_get_monotonic_time ();
if (self->loading_themes)
return;
@@ -1389,11 +1391,12 @@ ensure_valid_themes (GtkIconTheme *self)
if (was_valid)
queue_theme_changed (self);
}
+}
- if (gdk_profiler_is_running ())
- gdk_profiler_add_mark (before * 1000, (g_get_monotonic_time () - before) * 1000, "icon theme load", NULL);
-
- self->loading_themes = FALSE;
+void
+gtk_icon_theme_ensure_loaded (GtkIconTheme *self)
+{
+ ensure_valid_themes (self);
}
static inline gboolean
diff --git a/gtk/gtkiconthemeprivate.h b/gtk/gtkiconthemeprivate.h
index 132d5154ee..1c54944817 100644
--- a/gtk/gtkiconthemeprivate.h
+++ b/gtk/gtkiconthemeprivate.h
@@ -27,4 +27,6 @@ void gtk_icon_theme_lookup_symbolic_colors (GtkCssStyle *style,
GdkRGBA *warning_out,
GdkRGBA *error_out);
+void gtk_icon_theme_ensure_loaded (GtkIconTheme *self);
+
#endif /* __GTK_ICON_THEME_PRIVATE_H__ */