[gedit/gnome-3-16] open file selector: use context save/restore



commit 2ca4f5157ebead1acfbd82f8c802e0aba2ded7cd
Author: Paolo Borelli <pborelli gnome org>
Date:   Sun Aug 16 16:52:36 2015 +0200

    open file selector: use context save/restore
    
    Instead of manually removing a class, use save and restore.
    This is more efficient with newer gtk since gtk can tell
    that the context was unaffected.

 gedit/gedit-open-document-selector.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/gedit/gedit-open-document-selector.c b/gedit/gedit-open-document-selector.c
index f1d8776..2951f52 100644
--- a/gedit/gedit-open-document-selector.c
+++ b/gedit/gedit-open-document-selector.c
@@ -1035,21 +1035,24 @@ name_renderer_datafunc (GtkTreeViewColumn         *column,
 {
        GeditOpenDocumentSelectorPrivate *priv = selector->priv;
        GtkStyleContext *context;
+       GtkStateFlags state;
        GdkRGBA label_color;
        gdouble font_size;
 
        context = gtk_widget_get_style_context (priv->treeview);
+       state = gtk_style_context_get_state (context);
 
        /* Name label foreground and font size styling */
+       gtk_style_context_save (context);
        gtk_style_context_add_class (context, "open-document-selector-name-label");
 
-       gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &label_color);
+       gtk_style_context_get_color (context, state, &label_color);
        g_object_set (priv->name_renderer, "foreground-rgba", &label_color, NULL);
 
-       gtk_style_context_get (context, GTK_STATE_FLAG_NORMAL, "font-size", &font_size, NULL);
+       gtk_style_context_get (context, state, "font-size", &font_size, NULL);
        g_object_set (priv->name_renderer, "size-points", font_size, NULL);
 
-       gtk_style_context_remove_class (context, "open-document-selector-name-label");
+       gtk_style_context_restore (context);
 }
 
 static void
@@ -1061,21 +1064,24 @@ path_renderer_datafunc (GtkTreeViewColumn         *column,
 {
        GeditOpenDocumentSelectorPrivate *priv = selector->priv;
        GtkStyleContext *context;
+       GtkStateFlags state;
        GdkRGBA label_color;
        gdouble font_size;
 
        context = gtk_widget_get_style_context (priv->treeview);
+       state = gtk_style_context_get_state (context);
 
        /* Path label foreground and font size styling */
+       gtk_style_context_save (context);
        gtk_style_context_add_class (context, "open-document-selector-path-label");
 
-       gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &label_color);
+       gtk_style_context_get_color (context, state, &label_color);
        g_object_set (priv->path_renderer, "foreground-rgba", &label_color, NULL);
 
-       gtk_style_context_get (context, GTK_STATE_FLAG_NORMAL, "font-size", &font_size, NULL);
+       gtk_style_context_get (context, state, "font-size", &font_size, NULL);
        g_object_set (priv->path_renderer, "size-points", font_size, NULL);
 
-       gtk_style_context_remove_class (context, "open-document-selector-path-label");
+       gtk_style_context_restore (context);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]