[gtksourceview/wip/chergert/gsv-gtk4] completion: track CSS changes using css_changed vfunc



commit ec72f98b49f00c09b42b829991d08cd57063539d
Author: Christian Hergert <chergert redhat com>
Date:   Tue Mar 17 14:02:57 2020 -0700

    completion: track CSS changes using css_changed vfunc

 gtksourceview/gtksourcecompletion-private.h |  4 +++-
 gtksourceview/gtksourcecompletion.c         | 16 +++++++---------
 gtksourceview/gtksourceview.c               |  6 ++++++
 3 files changed, 16 insertions(+), 10 deletions(-)
---
diff --git a/gtksourceview/gtksourcecompletion-private.h b/gtksourceview/gtksourcecompletion-private.h
index 01015047..c7853f48 100644
--- a/gtksourceview/gtksourcecompletion-private.h
+++ b/gtksourceview/gtksourcecompletion-private.h
@@ -31,4 +31,6 @@ void                 _gtk_source_completion_add_proposals (GtkSourceCompletion
                                                            GtkSourceCompletionProvider *provider,
                                                            GList                       *proposals,
                                                            gboolean                     finished);
-
+G_GNUC_INTERNAL
+void                 _gtk_source_completion_css_changed   (GtkSourceCompletion         *completion,
+                                                           GtkCssStyleChange           *change);
diff --git a/gtksourceview/gtksourcecompletion.c b/gtksourceview/gtksourcecompletion.c
index 3ee8cb88..9f1dae0c 100644
--- a/gtksourceview/gtksourcecompletion.c
+++ b/gtksourceview/gtksourcecompletion.c
@@ -2196,11 +2196,14 @@ init_info_window (GtkSourceCompletion *completion)
        gtk_widget_show (GTK_WIDGET (completion->default_info));
 }
 
-static void
-connect_style_context (GtkSourceCompletion *completion)
+void
+_gtk_source_completion_css_changed (GtkSourceCompletion *completion,
+                                    GtkCssStyleChange   *change)
 {
        GtkStyleContext *style_context;
 
+       g_assert (GTK_SOURCE_IS_COMPLETION (completion));
+
        if (completion->view == NULL)
        {
                return;
@@ -2208,12 +2211,6 @@ connect_style_context (GtkSourceCompletion *completion)
 
        style_context = gtk_widget_get_style_context (GTK_WIDGET (completion->view));
 
-       g_signal_connect_object (style_context,
-                                "changed",
-                                G_CALLBACK (style_context_changed),
-                                completion,
-                                G_CONNECT_AFTER);
-
        style_context_changed (style_context, completion);
 }
 
@@ -2238,7 +2235,8 @@ gtk_source_completion_constructed (GObject *object)
        init_tree_view (completion, builder);
        init_main_window (completion, builder);
        init_info_window (completion);
-       connect_style_context (completion);
+
+       _gtk_source_completion_css_changed (completion, NULL);
 
        g_object_unref (builder);
 
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index dfef51f6..8c45fd7b 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -4615,6 +4615,12 @@ gtk_source_view_css_changed (GtkWidget         *widget,
        priv->cached_right_margin_pos = -1;
 
        update_style (view);
+
+       /* Notify completion to update styling */
+       if (priv->completion != NULL)
+       {
+               _gtk_source_completion_css_changed (priv->completion, change);
+       }
 }
 
 static MarkCategory *


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