[gtksourceview/wip/chergert/gsv-gtk4: 151/259] lines: avoid use of style-updated




commit 1bac09fe748aaa8bb4f4447e5d79b42e37f6f7c0
Author: Christian Hergert <chergert redhat com>
Date:   Tue Mar 17 17:10:35 2020 -0700

    lines: avoid use of style-updated
    
    This API was removed in GTK 4, so we need to drop our use of it. Instead
    we will watch for CSS changes and apply that.
    
    Long term, this will work better as CSS is inhereted from parent widgets
    before 4.0 is released.

 gtksourceview/gtksourcegutterrendererlines.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)
---
diff --git a/gtksourceview/gtksourcegutterrendererlines.c b/gtksourceview/gtksourcegutterrendererlines.c
index 23cc5dfc..67072c49 100644
--- a/gtksourceview/gtksourcegutterrendererlines.c
+++ b/gtksourceview/gtksourcegutterrendererlines.c
@@ -141,9 +141,13 @@ gutter_renderer_change_buffer (GtkSourceGutterRenderer *renderer,
 }
 
 static void
-on_view_style_updated (GtkTextView                  *view,
-                       GtkSourceGutterRendererLines *renderer)
+gtk_source_gutter_renderer_lines_css_changed (GtkWidget         *widget,
+                                              GtkCssStyleChange *change)
 {
+       GtkSourceGutterRendererLines *renderer = GTK_SOURCE_GUTTER_RENDERER_LINES (widget);
+
+       GTK_WIDGET_CLASS (_gtk_source_gutter_renderer_lines_parent_class)->css_changed (widget, change);
+
        /* Force to recalculate the size. */
        renderer->num_line_digits = -1;
        recalculate_size (renderer);
@@ -165,9 +169,6 @@ gutter_renderer_change_view (GtkSourceGutterRenderer *renderer,
 
        if (old_view != NULL)
        {
-               g_signal_handlers_disconnect_by_func (old_view,
-                                                     on_view_style_updated,
-                                                     renderer);
                g_signal_handlers_disconnect_by_func (old_view,
                                                      on_view_notify_cursor_visible,
                                                      renderer);
@@ -177,12 +178,6 @@ gutter_renderer_change_view (GtkSourceGutterRenderer *renderer,
 
        if (new_view != NULL)
        {
-               g_signal_connect_object (new_view,
-                                        "style-updated",
-                                        G_CALLBACK (on_view_style_updated),
-                                        renderer,
-                                        0);
-
                g_signal_connect_object (new_view,
                                         "notify::cursor-visible",
                                         G_CALLBACK (on_view_notify_cursor_visible),
@@ -384,6 +379,7 @@ _gtk_source_gutter_renderer_lines_class_init (GtkSourceGutterRendererLinesClass
        GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
        widget_class->measure = gtk_source_gutter_renderer_lines_measure;
+       widget_class->css_changed = gtk_source_gutter_renderer_lines_css_changed;
 
        renderer_class->query_activatable = gutter_renderer_query_activatable;
        renderer_class->query_data = gtk_source_gutter_renderer_lines_query_data;


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