[Xfce4-commits] [apps/xfce4-screensaver] 02/02: Reload theme previews as configuration changes

noreply at xfce.org noreply at xfce.org
Sun Jul 14 00:01:57 CEST 2019


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

b   l   u   e   s   a   b   r   e       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 apps/xfce4-screensaver.

commit d56e4a4d6e2e10808cae3f68e9c4fce0be590e9c
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sat Jul 13 18:01:50 2019 -0400

    Reload theme previews as configuration changes
---
 src/xfce4-screensaver-preferences.c | 42 +++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/src/xfce4-screensaver-preferences.c b/src/xfce4-screensaver-preferences.c
index af3a8a5..a2ff4a7 100644
--- a/src/xfce4-screensaver-preferences.c
+++ b/src/xfce4-screensaver-preferences.c
@@ -996,6 +996,44 @@ setup_treeview (GtkWidget *tree,
 }
 
 static void
+reload_theme (GtkWidget *treeview) {
+    GtkWidget        *preview;
+    GtkTreeIter       iter;
+    GtkTreeModel     *model;
+    GtkTreeSelection *selection;
+    char             *theme;
+    char             *name;
+
+    if (active_theme == NULL) {
+        return;
+    }
+
+    model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
+    if (model == NULL) {
+        return;
+    }
+
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+
+    if (!gtk_tree_selection_get_selected (selection, &model, &iter)) {
+        return;
+    }
+
+    gtk_tree_model_get (model, &iter, ID_COLUMN, &theme, NAME_COLUMN, &name, -1);
+
+    if (theme == NULL) {
+        g_free (name);
+        return;
+    }
+
+    preview  = GTK_WIDGET (gtk_builder_get_object (builder, "saver_themes_preview_area"));
+    preview_set_theme (preview, theme, name);
+
+    g_free (theme);
+    g_free (name);
+}
+
+static void
 setup_treeview_selection (GtkWidget *tree) {
     char         *theme;
     GtkTreeModel *model;
@@ -1443,6 +1481,10 @@ key_changed_cb (XfconfChannel *channel, const gchar *key, gpointer data) {
         GtkWidget *treeview;
         treeview = GTK_WIDGET (gtk_builder_get_object (builder, "saver_themes_treeview"));
         setup_treeview_selection (treeview);
+    } else if (g_str_has_suffix (key, "arguments")) {
+        GtkWidget *treeview;
+        treeview = GTK_WIDGET (gtk_builder_get_object (builder, "saver_themes_treeview"));
+        reload_theme (treeview);
     }
 }
 

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


More information about the Xfce4-commits mailing list