[gtk: 34/40] icon-theme: Add i/o priority to choose_icon_async()
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 34/40] icon-theme: Add i/o priority to choose_icon_async()
- Date: Thu, 30 Jan 2020 17:34:00 +0000 (UTC)
commit d1cd578d59c1a9487d81d69f4e51756cf2bc209a
Author: Alexander Larsson <alexl redhat com>
Date: Thu Jan 30 15:15:08 2020 +0100
icon-theme: Add i/o priority to choose_icon_async()
This is set on the GTask and lower priority will be loaded before,
this can be used to prioritize some icons for preloading.
gtk/gtkiconhelper.c | 2 +-
gtk/gtkicontheme.c | 9 ++++++---
gtk/gtkicontheme.h | 1 +
tests/testicontheme.c | 2 +-
testsuite/gtk/icontheme.c | 4 ++--
5 files changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c
index 4091722cc4..e266887c56 100644
--- a/gtk/gtkiconhelper.c
+++ b/gtk/gtkiconhelper.c
@@ -215,7 +215,7 @@ _gtk_icon_helper_preload (GtkIconHelper *self)
gtk_icon_theme_choose_icon_async (icon_theme,
(const gchar **)g_themed_icon_get_names (G_THEMED_ICON (gicon)),
size, scale,
- flags, NULL, NULL, NULL);
+ flags, 0, NULL, NULL, NULL);
}
if (free_gicon)
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 104a95e332..f04b019b1b 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -2458,6 +2458,7 @@ load_icon_thread (GTask *task,
* @size: desired icon size.
* @scale: the window scale this will be displayed on
* @flags: flags modifying the behavior of the icon lookup
+ * @io_priority: the [I/O priority][io-priority] of the request.
* @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @callback: (scope async): a #GAsyncReadyCallback to call when the
* request is satisfied
@@ -2474,9 +2475,10 @@ gtk_icon_theme_choose_icon_async (GtkIconTheme *self,
gint size,
gint scale,
GtkIconLookupFlags flags,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+ int priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
GTask *task;
GtkIcon *icon = NULL;
@@ -2489,6 +2491,7 @@ gtk_icon_theme_choose_icon_async (GtkIconTheme *self,
g_warn_if_fail ((flags & GTK_ICON_LOOKUP_GENERIC_FALLBACK) == 0);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_priority (task, priority);
if (gtk_icon_theme_trylock (self))
{
diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h
index 45ca609363..a11959a61b 100644
--- a/gtk/gtkicontheme.h
+++ b/gtk/gtkicontheme.h
@@ -163,6 +163,7 @@ void gtk_icon_theme_choose_icon_async (GtkIconTheme
gint size,
gint scale,
GtkIconLookupFlags flags,
+ int priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
diff --git a/tests/testicontheme.c b/tests/testicontheme.c
index c988f10ce5..4271e6df46 100644
--- a/tests/testicontheme.c
+++ b/tests/testicontheme.c
@@ -149,7 +149,7 @@ main (int argc, char *argv[])
gtk_widget_show (window);
icons[0] = argv[3];
- gtk_icon_theme_choose_icon_async (icon_theme, icons, size, scale, flags, NULL, icon_loaded_cb, image);
+ gtk_icon_theme_choose_icon_async (icon_theme, icons, size, scale, flags, 0, NULL, icon_loaded_cb,
image);
gtk_main ();
}
diff --git a/testsuite/gtk/icontheme.c b/testsuite/gtk/icontheme.c
index 2d1ea6902c..9563ad2908 100644
--- a/testsuite/gtk/icontheme.c
+++ b/testsuite/gtk/icontheme.c
@@ -622,8 +622,8 @@ test_async (void)
g_printerr ("test_async\n");
theme = get_test_icontheme (TRUE);
- gtk_icon_theme_choose_icon_async (theme, icons, 32, 1, 0, NULL, load_icon, loop);
- gtk_icon_theme_choose_icon_async (theme, icons, 48, 1, 0, NULL, load_icon, loop);
+ gtk_icon_theme_choose_icon_async (theme, icons, 32, 1, 0, 0, NULL, load_icon, loop);
+ gtk_icon_theme_choose_icon_async (theme, icons, 48, 1, 0, 0, NULL, load_icon, loop);
g_main_loop_run (loop);
g_main_loop_unref (loop);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]