[Xfce4-commits] [xfce/xfce4-panel] 01/01: Add dark mode preference

noreply at xfce.org noreply at xfce.org
Thu Oct 17 01:24:12 CEST 2019


This is an automated email from the git hooks/post-receive script.

o   c   h   o   s   i       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/xfce4-panel.

commit 0640444de58adf55e93042e89b198b209f9b990f
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date:   Tue Sep 17 16:53:02 2019 +0200

    Add dark mode preference
    
    This also results in the panel preferences dialog being drawn with the
    Gtk dark theme variant, as well as all plugins and their various
    widgets.
---
 libxfce4panel/xfce-panel-plugin-provider.c | 11 +++++
 libxfce4panel/xfce-panel-plugin-provider.h |  6 +++
 libxfce4panel/xfce-panel-plugin.c          | 60 ++++++++++++++++++++++++++
 panel/panel-application.c                  |  1 +
 panel/panel-plugin-external.c              | 23 ++++++++++
 panel/panel-preferences-dialog.c           |  1 +
 panel/panel-preferences-dialog.glade       | 68 ++++++++++++++++++++++++++---
 panel/panel-window.c                       | 69 +++++++++++++++++++++++++++++-
 wrapper/main.c                             |  4 ++
 9 files changed, 235 insertions(+), 8 deletions(-)

diff --git a/libxfce4panel/xfce-panel-plugin-provider.c b/libxfce4panel/xfce-panel-plugin-provider.c
index 9018e2d..4791b0d 100644
--- a/libxfce4panel/xfce-panel-plugin-provider.c
+++ b/libxfce4panel/xfce-panel-plugin-provider.c
@@ -126,6 +126,17 @@ xfce_panel_plugin_provider_set_icon_size (XfcePanelPluginProvider *provider,
 
 
 void
+xfce_panel_plugin_provider_set_dark_mode (XfcePanelPluginProvider *provider,
+                                          gboolean                 dark_mode)
+{
+  panel_return_if_fail (XFCE_IS_PANEL_PLUGIN_PROVIDER (provider));
+
+  (*XFCE_PANEL_PLUGIN_PROVIDER_GET_INTERFACE (provider)->set_dark_mode) (provider, dark_mode);
+}
+
+
+
+void
 xfce_panel_plugin_provider_set_mode (XfcePanelPluginProvider *provider,
                                      XfcePanelPluginMode      mode)
 {
diff --git a/libxfce4panel/xfce-panel-plugin-provider.h b/libxfce4panel/xfce-panel-plugin-provider.h
index 3dfaac7..6214f94 100644
--- a/libxfce4panel/xfce-panel-plugin-provider.h
+++ b/libxfce4panel/xfce-panel-plugin-provider.h
@@ -54,6 +54,8 @@ struct _XfcePanelPluginProviderInterface
                                        gint                           size);
   void         (*set_icon_size)       (XfcePanelPluginProvider       *provider,
                                        gint                           icon_size);
+  void         (*set_dark_mode)       (XfcePanelPluginProvider       *provider,
+                                       gboolean                       dark_mode);
   void         (*set_mode)            (XfcePanelPluginProvider       *provider,
                                        XfcePanelPluginMode            mode);
   void         (*set_nrows)           (XfcePanelPluginProvider       *provider,
@@ -104,6 +106,7 @@ typedef enum /*< skip >*/
 {
   PROVIDER_PROP_TYPE_SET_SIZE,                /* gint */
   PROVIDER_PROP_TYPE_SET_ICON_SIZE,           /* gint */
+  PROVIDER_PROP_TYPE_SET_DARK_MODE,           /* gboolean */
   PROVIDER_PROP_TYPE_SET_MODE,                /* XfcePanelPluginMode (as gint) */
   PROVIDER_PROP_TYPE_SET_SCREEN_POSITION,     /* XfceScreenPosition (as gint) */
   PROVIDER_PROP_TYPE_SET_BACKGROUND_ALPHA,    /* gdouble */
@@ -163,6 +166,9 @@ void                  xfce_panel_plugin_provider_set_size            (XfcePanelP
 void                  xfce_panel_plugin_provider_set_icon_size       (XfcePanelPluginProvider       *provider,
                                                                       gint                           icon_size);
 
+void                  xfce_panel_plugin_provider_set_dark_mode       (XfcePanelPluginProvider       *provider,
+                                                                      gboolean                       dark_mode);
+
 void                  xfce_panel_plugin_provider_set_mode            (XfcePanelPluginProvider       *provider,
                                                                       XfcePanelPluginMode            mode);
 
diff --git a/libxfce4panel/xfce-panel-plugin.c b/libxfce4panel/xfce-panel-plugin.c
index fc60fd2..f27a2ce 100644
--- a/libxfce4panel/xfce-panel-plugin.c
+++ b/libxfce4panel/xfce-panel-plugin.c
@@ -93,6 +93,8 @@ static void          xfce_panel_plugin_set_size               (XfcePanelPluginPr
                                                                gint                              size);
 static void          xfce_panel_plugin_set_icon_size          (XfcePanelPluginProvider          *provider,
                                                                gint                              icon_size);
+static void          xfce_panel_plugin_set_dark_mode          (XfcePanelPluginProvider          *provider,
+                                                               gboolean                          dark_mode);
 static void          xfce_panel_plugin_set_mode               (XfcePanelPluginProvider          *provider,
                                                                XfcePanelPluginMode               mode);
 static void          xfce_panel_plugin_set_nrows              (XfcePanelPluginProvider          *provider,
@@ -130,6 +132,7 @@ enum
   PROP_ORIENTATION,
   PROP_SIZE,
   PROP_ICON_SIZE,
+  PROP_DARK_MODE,
   PROP_SMALL,
   PROP_SCREEN_POSITION,
   PROP_EXPAND,
@@ -177,6 +180,7 @@ struct _XfcePanelPluginPrivate
   gchar              **arguments;
   gint                 size; /* single row size */
   gint                 icon_size;
+  gboolean             dark_mode;
   guint                expand : 1;
   guint                shrink : 1;
   guint                nrows;
@@ -591,6 +595,22 @@ xfce_panel_plugin_class_init (XfcePanelPluginClass *klass)
                         | G_PARAM_STATIC_STRINGS);
 
   /**
+   * XfcePanelPlugin:dark-mode:
+   *
+   * Whether the #XfcePanelPlugin shall request the Gtk dark theme variant (based on the panel
+   * setting).
+   *
+   * Since: 4.14
+   **/
+  plugin_props[PROP_DARK_MODE] =
+      g_param_spec_boolean ("dark-mode",
+                            "Dark Mode",
+                            "Whether or not to request the Gtk dark theme variant",
+                            FALSE,
+                            G_PARAM_READWRITE
+                            | G_PARAM_STATIC_STRINGS);
+
+  /**
    * XfcePanelPlugin:screen-position:
    *
    * The #XfceScreenPosition of the #XfcePanelPlugin. Plugin writer can use it
@@ -708,6 +728,7 @@ xfce_panel_plugin_init (XfcePanelPlugin *plugin)
   plugin->priv->arguments = NULL;
   plugin->priv->size = 0;
   plugin->priv->icon_size = 0;
+  plugin->priv->dark_mode = FALSE;
   plugin->priv->small = FALSE;
   plugin->priv->expand = FALSE;
   plugin->priv->shrink = FALSE;
@@ -744,6 +765,7 @@ xfce_panel_plugin_provider_init (XfcePanelPluginProviderInterface *iface)
   iface->get_unique_id = (ProviderToPluginInt) xfce_panel_plugin_get_unique_id;
   iface->set_size = xfce_panel_plugin_set_size;
   iface->set_icon_size = xfce_panel_plugin_set_icon_size;
+  iface->set_dark_mode = xfce_panel_plugin_set_dark_mode;
   iface->set_mode = xfce_panel_plugin_set_mode;
   iface->set_nrows = xfce_panel_plugin_set_nrows;
   iface->set_screen_position = xfce_panel_plugin_set_screen_position;
@@ -819,6 +841,10 @@ xfce_panel_plugin_get_property (GObject    *object,
       g_value_set_uint (value, private->icon_size);
       break;
 
+    case PROP_DARK_MODE:
+      g_value_set_boolean (value, private->dark_mode);
+      break;
+
     case PROP_NROWS:
       g_value_set_uint (value, private->nrows);
       break;
@@ -890,6 +916,11 @@ xfce_panel_plugin_set_property (GObject      *object,
       private->arguments = g_value_dup_boxed (value);
       break;
 
+    case PROP_DARK_MODE:
+      xfce_panel_plugin_set_dark_mode (XFCE_PANEL_PLUGIN_PROVIDER (object),
+                                       g_value_get_boolean (value));
+      break;
+
     case PROP_SMALL:
       xfce_panel_plugin_set_small (XFCE_PANEL_PLUGIN (object),
                                    g_value_get_boolean (value));
@@ -1490,6 +1521,35 @@ xfce_panel_plugin_set_icon_size (XfcePanelPluginProvider *provider,
 
 
 static void
+xfce_panel_plugin_set_dark_mode (XfcePanelPluginProvider *provider,
+                                 gboolean                 dark_mode)
+{
+#if GTK_CHECK_VERSION (3, 0, 0)
+  XfcePanelPlugin *plugin = XFCE_PANEL_PLUGIN (provider);
+  GtkSettings *gtk_settings;
+
+  if (G_LIKELY (plugin->priv->dark_mode != dark_mode))
+    {
+      plugin->priv->dark_mode = dark_mode;
+      g_object_notify_by_pspec (G_OBJECT (plugin), plugin_props[PROP_DARK_MODE]);
+
+      gtk_settings = gtk_widget_get_settings (GTK_WIDGET (plugin));
+
+      if (!dark_mode)
+        gtk_settings_reset_property (gtk_settings,
+                                     "gtk-application-prefer-dark-theme");
+
+      g_object_set (gtk_settings,
+                    "gtk-application-prefer-dark-theme",
+                    dark_mode,
+                    NULL);
+    }
+#endif
+}
+
+
+
+static void
 xfce_panel_plugin_set_mode (XfcePanelPluginProvider *provider,
                             XfcePanelPluginMode      mode)
 {
diff --git a/panel/panel-application.c b/panel/panel-application.c
index 93dcf27..2bcb05a 100644
--- a/panel/panel-application.c
+++ b/panel/panel-application.c
@@ -296,6 +296,7 @@ panel_application_xfconf_window_bindings (PanelApplication *application,
     { "length-adjust", G_TYPE_BOOLEAN },
     { "enter-opacity", G_TYPE_UINT },
     { "leave-opacity", G_TYPE_UINT },
+    { "dark-mode", G_TYPE_BOOLEAN },
     { "background-style", G_TYPE_UINT },
     { "background-rgba", GDK_TYPE_RGBA },
     { "background-image", G_TYPE_STRING },
diff --git a/panel/panel-plugin-external.c b/panel/panel-plugin-external.c
index 48ea492..0b62bb8 100644
--- a/panel/panel-plugin-external.c
+++ b/panel/panel-plugin-external.c
@@ -85,6 +85,8 @@ static void         panel_plugin_external_set_size                (XfcePanelPlug
                                                                    gint                              size);
 static void         panel_plugin_external_set_icon_size           (XfcePanelPluginProvider          *provider,
                                                                    gint                              icon_size);
+static void         panel_plugin_external_set_dark_mode           (XfcePanelPluginProvider          *provider,
+                                                                   gboolean                          dark_mode);
 static void         panel_plugin_external_set_mode                (XfcePanelPluginProvider          *provider,
                                                                    XfcePanelPluginMode               mode);
 static void         panel_plugin_external_set_nrows               (XfcePanelPluginProvider          *provider,
@@ -224,6 +226,7 @@ panel_plugin_external_provider_init (XfcePanelPluginProviderInterface *iface)
   iface->get_unique_id = panel_plugin_external_get_unique_id;
   iface->set_size = panel_plugin_external_set_size;
   iface->set_icon_size = panel_plugin_external_set_icon_size;
+  iface->set_dark_mode = panel_plugin_external_set_dark_mode;
   iface->set_mode = panel_plugin_external_set_mode;
   iface->set_nrows = panel_plugin_external_set_nrows;
   iface->set_screen_position = panel_plugin_external_set_screen_position;
@@ -926,6 +929,26 @@ panel_plugin_external_set_icon_size (XfcePanelPluginProvider *provider,
 
 
 static void
+panel_plugin_external_set_dark_mode (XfcePanelPluginProvider *provider,
+                                     gboolean                 dark_mode)
+{
+  GValue value = { 0, };
+
+  panel_return_if_fail (PANEL_IS_PLUGIN_EXTERNAL (provider));
+  panel_return_if_fail (XFCE_IS_PANEL_PLUGIN_PROVIDER (provider));
+
+  g_value_init (&value, G_TYPE_BOOLEAN);
+  g_value_set_boolean (&value, dark_mode);
+
+  panel_plugin_external_queue_add (PANEL_PLUGIN_EXTERNAL (provider),
+                                   PROVIDER_PROP_TYPE_SET_DARK_MODE, &value);
+
+  g_value_unset (&value);
+}
+
+
+
+static void
 panel_plugin_external_set_mode (XfcePanelPluginProvider *provider,
                                 XfcePanelPluginMode      mode)
 {
diff --git a/panel/panel-preferences-dialog.c b/panel/panel-preferences-dialog.c
index 8747da2..4c8dab1 100644
--- a/panel/panel-preferences-dialog.c
+++ b/panel/panel-preferences-dialog.c
@@ -487,6 +487,7 @@ panel_preferences_dialog_bindings_update (PanelPreferencesDialog *dialog)
   panel_preferences_dialog_bindings_add (dialog, "background-style", "active", 0);
   panel_preferences_dialog_bindings_add (dialog, "background-rgba", "rgba", 0);
   panel_preferences_dialog_bindings_add (dialog, "icon-size", "value", 0);
+  panel_preferences_dialog_bindings_add (dialog, "dark-mode", "active", 0);
 
   /* watch image changes from the panel */
   dialog->bg_image_notify_handler_id = g_signal_connect_swapped (G_OBJECT (dialog->active),
diff --git a/panel/panel-preferences-dialog.glade b/panel/panel-preferences-dialog.glade
index 97a31f7..505aa2a 100644
--- a/panel/panel-preferences-dialog.glade
+++ b/panel/panel-preferences-dialog.glade
@@ -680,6 +680,62 @@
                     <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
+                      <object class="GtkGrid" id="general-grid">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_bottom">18</property>
+                        <property name="row_spacing">6</property>
+                        <property name="column_spacing">12</property>
+                        <child>
+                          <object class="GtkLabel">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes"><b>General</b></property>
+                            <property name="use_markup">True</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="hexpand">True</property>
+                            <property name="label" translatable="yes">Dark mode</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSwitch" id="dark-mode">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">center</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
                       <object class="GtkGrid" id="background-grid">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -790,11 +846,11 @@
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">0</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkGrid">
+                      <object class="GtkGrid" id="icons-grid">
                         <property name="name">icons-grid</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -895,7 +951,7 @@
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="position">2</property>
                       </packing>
                     </child>
                     <child>
@@ -909,7 +965,7 @@
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">2</property>
+                        <property name="position">3</property>
                       </packing>
                     </child>
                     <child>
@@ -991,7 +1047,7 @@ Enable compositing in the window manager for opacity settings in the panel.</pro
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">3</property>
+                        <property name="position">4</property>
                       </packing>
                     </child>
                     <child>
@@ -1060,7 +1116,7 @@ Enable compositing in the window manager for opacity settings in the panel.</pro
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">4</property>
+                        <property name="position">5</property>
                       </packing>
                     </child>
                   </object>
diff --git a/panel/panel-window.c b/panel/panel-window.c
index b32844a..91e9492 100644
--- a/panel/panel-window.c
+++ b/panel/panel-window.c
@@ -139,6 +139,7 @@ static void         panel_window_size_allocate_set_xy                 (PanelWind
 static void         panel_window_screen_changed                       (GtkWidget        *widget,
                                                                        GdkScreen        *previous_screen);
 static void         panel_window_style_updated                        (GtkWidget        *widget);
+static void         panel_window_update_dark_mode                     (gboolean          dark_mode);
 static void         panel_window_realize                              (GtkWidget        *widget);
 static StrutsEgde   panel_window_screen_struts_edge                   (PanelWindow      *window);
 static void         panel_window_screen_struts_set                    (PanelWindow      *window);
@@ -175,6 +176,8 @@ static void         panel_window_plugin_set_size                      (GtkWidget
                                                                        gpointer          user_data);
 static void         panel_window_plugin_set_icon_size                 (GtkWidget        *widget,
                                                                        gpointer          user_data);
+static void         panel_window_plugin_set_dark_mode                 (GtkWidget        *widget,
+                                                                       gpointer          user_data);
 static void         panel_window_plugin_set_nrows                     (GtkWidget        *widget,
                                                                        gpointer          user_data);
 static void         panel_window_plugin_set_screen_position           (GtkWidget        *widget,
@@ -197,7 +200,8 @@ enum
   PROP_OUTPUT_NAME,
   PROP_POSITION,
   PROP_DISABLE_STRUTS,
-  PROP_ICON_SIZE
+  PROP_ICON_SIZE,
+  PROP_DARK_MODE
 };
 
 enum _PluginProp
@@ -206,7 +210,8 @@ enum _PluginProp
   PLUGIN_PROP_SCREEN_POSITION,
   PLUGIN_PROP_NROWS,
   PLUGIN_PROP_SIZE,
-  PLUGIN_PROP_ICON_SIZE
+  PLUGIN_PROP_ICON_SIZE,
+  PLUGIN_PROP_DARK_MODE
 };
 
 enum _AutohideBehavior
@@ -311,6 +316,9 @@ struct _PanelWindow
   gulong               struts[N_STRUTS];
   guint                struts_disabled : 1;
 
+  /* dark mode */
+  gboolean             dark_mode;
+
   /* window positioning */
   guint                size;
   guint                icon_size;
@@ -430,6 +438,12 @@ panel_window_class_init (PanelWindowClass *klass)
                                                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class,
+                                   PROP_DARK_MODE,
+                                   g_param_spec_boolean ("dark-mode", NULL, NULL,
+                                                         FALSE,
+                                                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class,
                                    PROP_NROWS,
                                    g_param_spec_uint ("nrows", NULL, NULL,
                                                       1, 6, 1,
@@ -533,6 +547,7 @@ panel_window_init (PanelWindow *window)
   window->mode = XFCE_PANEL_PLUGIN_MODE_HORIZONTAL;
   window->size = 48;
   window->icon_size = 0;
+  window->dark_mode = FALSE;
   window->nrows = 1;
   window->length = 0.10;
   window->length_adjust = TRUE;
@@ -596,6 +611,10 @@ panel_window_get_property (GObject    *object,
       g_value_set_uint (value, window->icon_size);
       break;
 
+    case PROP_DARK_MODE:
+      g_value_set_boolean (value, window->dark_mode);
+      break;
+
     case PROP_NROWS:
       g_value_set_uint (value, window->nrows);
       break;
@@ -701,6 +720,18 @@ panel_window_set_property (GObject      *object,
       panel_window_plugins_update (window, PLUGIN_PROP_ICON_SIZE);
       break;
 
+    case PROP_DARK_MODE:
+      val_bool = g_value_get_boolean (value);
+      if (window->dark_mode != val_bool)
+        {
+          window->dark_mode = val_bool;
+        }
+
+      /* set dark mode for the main application and plugins */
+      panel_window_update_dark_mode (window->dark_mode);
+      panel_window_plugins_update (window, PLUGIN_PROP_DARK_MODE);
+      break;
+
     case PROP_NROWS:
       val_uint = g_value_get_uint (value);
       if (window->nrows != val_uint)
@@ -1634,6 +1665,22 @@ panel_window_screen_changed (GtkWidget *widget,
 
 
 static void
+panel_window_update_dark_mode (gboolean dark_mode)
+{
+  GtkSettings *gtk_settings;
+
+  gtk_settings = gtk_settings_get_default ();
+
+  if (!dark_mode)
+    gtk_settings_reset_property (gtk_settings, "gtk-application-prefer-dark-theme");
+  g_object_set (gtk_settings,
+                  "gtk-application-prefer-dark-theme",
+                  dark_mode,
+                  NULL);
+}
+
+
+static void
 panel_window_style_updated (GtkWidget *widget)
 {
   PanelWindow *window = PANEL_WINDOW (widget);
@@ -2956,6 +3003,10 @@ panel_window_plugins_update (PanelWindow *window,
       func = panel_window_plugin_set_icon_size;
       break;
 
+    case PLUGIN_PROP_DARK_MODE:
+      func = panel_window_plugin_set_dark_mode;
+      break;
+
     default:
       panel_assert_not_reached ();
       return;
@@ -3011,6 +3062,19 @@ panel_window_plugin_set_icon_size (GtkWidget *widget,
 
 
 static void
+panel_window_plugin_set_dark_mode (GtkWidget *widget,
+                                   gpointer   user_data)
+{
+  panel_return_if_fail (XFCE_IS_PANEL_PLUGIN_PROVIDER (widget));
+  panel_return_if_fail (PANEL_IS_WINDOW (user_data));
+
+  xfce_panel_plugin_provider_set_dark_mode (XFCE_PANEL_PLUGIN_PROVIDER (widget),
+                                            PANEL_WINDOW (user_data)->dark_mode);
+}
+
+
+
+static void
 panel_window_plugin_set_nrows (GtkWidget *widget,
                                gpointer   user_data)
 {
@@ -3177,6 +3241,7 @@ panel_window_set_povider_info (PanelWindow *window,
   panel_window_plugin_set_screen_position (provider, window);
   panel_window_plugin_set_size (provider, window);
   panel_window_plugin_set_icon_size (provider, window);
+  panel_window_plugin_set_dark_mode (provider, window);
   panel_window_plugin_set_nrows (provider, window);
 }
 
diff --git a/wrapper/main.c b/wrapper/main.c
index 6b145c1..192bfb6 100644
--- a/wrapper/main.c
+++ b/wrapper/main.c
@@ -79,6 +79,10 @@ wrapper_gproxy_set (XfcePanelPluginProvider *provider,
           xfce_panel_plugin_provider_set_icon_size (provider, g_variant_get_int32 (variant));
           break;
 
+        case PROVIDER_PROP_TYPE_SET_DARK_MODE:
+          xfce_panel_plugin_provider_set_dark_mode (provider, g_variant_get_boolean (variant));
+          break;
+
         case PROVIDER_PROP_TYPE_SET_MODE:
           xfce_panel_plugin_provider_set_mode (provider, g_variant_get_int32 (variant));
           break;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list