[libdazzle/wip/exalm/idle] css-provider: Apply changes immediately
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libdazzle/wip/exalm/idle] css-provider: Apply changes immediately
- Date: Tue, 9 Nov 2021 22:27:16 +0000 (UTC)
commit 1084fb23207ea98e5c8c96ee38a016a2e379cff8
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Wed Nov 10 03:24:51 2021 +0500
css-provider: Apply changes immediately
While queueing may save updates if multiple things are being changed
at the same time, those occasions are fairly rare, and scheduling the
update causes it to happen one frame later than needed. If the app
takes a while to redraw (e.g. Epiphany), potentially a lot later.
See https://gitlab.gnome.org/GNOME/epiphany/-/issues/1607
src/theming/dzl-css-provider.c | 31 ++-----------------------------
1 file changed, 2 insertions(+), 29 deletions(-)
---
diff --git a/src/theming/dzl-css-provider.c b/src/theming/dzl-css-provider.c
index 10b942c..72c3fa4 100644
--- a/src/theming/dzl-css-provider.c
+++ b/src/theming/dzl-css-provider.c
@@ -29,7 +29,6 @@ struct _DzlCssProvider
{
GtkCssProvider parent_instance;
gchar *base_path;
- guint queued_update;
};
G_DEFINE_TYPE (DzlCssProvider, dzl_css_provider, GTK_TYPE_CSS_PROVIDER)
@@ -151,31 +150,6 @@ dzl_css_provider_update (DzlCssProvider *self)
load_resource (self, resource_path);
}
-static gboolean
-dzl_css_provider_do_update (gpointer user_data)
-{
- DzlCssProvider *self = user_data;
-
- g_assert (DZL_IS_CSS_PROVIDER (self));
-
- self->queued_update = 0;
- dzl_css_provider_update (self);
-
- return G_SOURCE_REMOVE;
-}
-
-static void
-dzl_css_provider_queue_update (DzlCssProvider *self)
-{
- g_assert (DZL_IS_CSS_PROVIDER (self));
-
- if (self->queued_update == 0)
- self->queued_update = g_idle_add_full (G_PRIORITY_LOW,
- dzl_css_provider_do_update,
- g_object_ref (self),
- g_object_unref);
-}
-
static void
dzl_css_provider__settings_notify_gtk_theme_name (DzlCssProvider *self,
GParamSpec *pspec,
@@ -183,7 +157,7 @@ dzl_css_provider__settings_notify_gtk_theme_name (DzlCssProvider *self,
{
g_assert (DZL_IS_CSS_PROVIDER (self));
- dzl_css_provider_queue_update (self);
+ dzl_css_provider_update (self);
}
static void
@@ -193,7 +167,7 @@ dzl_css_provider__settings_notify_gtk_application_prefer_dark_theme (DzlCssProvi
{
g_assert (DZL_IS_CSS_PROVIDER (self));
- dzl_css_provider_queue_update (self);
+ dzl_css_provider_update (self);
}
static void
@@ -254,7 +228,6 @@ dzl_css_provider_finalize (GObject *object)
DzlCssProvider *self = (DzlCssProvider *)object;
g_clear_pointer (&self->base_path, g_free);
- dzl_clear_source (&self->queued_update);
G_OBJECT_CLASS (dzl_css_provider_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]