[sushi/wip/cosimoc/no-clutter: 15/50] media-bin: don't initialize style with class
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sushi/wip/cosimoc/no-clutter: 15/50] media-bin: don't initialize style with class
- Date: Mon, 17 Jun 2019 18:33:52 +0000 (UTC)
commit 8c4788f923419a711733aa3e6fddfc0ddf8e7682
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Sat Jun 15 12:17:04 2019 -0700
media-bin: don't initialize style with class
Looks like this is a bit too early now that the library does not
get linked together with the C executable.
Instead, we just load it in a g_once_init section when the first
instance is created.
src/libsushi/sushi-media-bin.c | 32 +++++++++++++++++++++-----------
1 file changed, 21 insertions(+), 11 deletions(-)
---
diff --git a/src/libsushi/sushi-media-bin.c b/src/libsushi/sushi-media-bin.c
index ac37cf8..ebabeb7 100644
--- a/src/libsushi/sushi-media-bin.c
+++ b/src/libsushi/sushi-media-bin.c
@@ -847,6 +847,25 @@ sushi_media_bin_init_volume_button (SushiMediaBin *self,
gtk_style_context_add_class (gtk_widget_get_style_context (popup), "sushi-media-bin");
}
+static void
+sushi_media_bin_init_style (SushiMediaBin *self)
+{
+ static gsize style_initialized = 0;
+
+ if (g_once_init_enter (&style_initialized))
+ {
+ GtkCssProvider *css_provider = gtk_css_provider_new ();
+
+ gtk_css_provider_load_from_resource (css_provider, "/org/gnome/Sushi/libsushi/sushi-media-bin.css");
+ gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
+ GTK_STYLE_PROVIDER (css_provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION-10);
+ g_object_unref (css_provider);
+
+ g_once_init_leave (&style_initialized, 1);
+ }
+}
+
static void
sushi_media_bin_init (SushiMediaBin *self)
{
@@ -855,6 +874,8 @@ sushi_media_bin_init (SushiMediaBin *self)
gtk_widget_init_template (GTK_WIDGET (self));
+ sushi_media_bin_init_style (self);
+
priv->state = SMB_INITIAL_STATE;
priv->autohide_timeout = AUTOHIDE_TIMEOUT_DEFAULT;
priv->pressed_button_type = GDK_NOTHING;
@@ -1228,17 +1249,6 @@ sushi_media_bin_class_init (SushiMediaBinClass *klass)
/* Setup CSS */
gtk_widget_class_set_css_name (widget_class, "sushi-media-bin");
- if (gdk_screen_get_default ())
- {
- GtkCssProvider *css_provider = gtk_css_provider_new ();
-
- gtk_css_provider_load_from_resource (css_provider, "/org/gnome/Sushi/libsushi/sushi-media-bin.css");
- gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
- GTK_STYLE_PROVIDER (css_provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION-10);
- g_object_unref (css_provider);
- }
-
/* Init GStreamer */
gst_init_check (NULL, NULL, NULL);
GST_DEBUG_CATEGORY_INIT (sushi_media_bin_debug, "SushiMediaBin", 0, "SushiMediaBin audio/video widget");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]