[gnome-builder/gnome-builder-3-36] sourceview: draw bubbles behind text layer



commit d12f51cbc1d593fe576d65756793096152f44281
Author: Christian Hergert <chergert redhat com>
Date:   Tue Apr 14 08:43:34 2020 -0700

    sourceview: draw bubbles behind text layer
    
    This ensures that the text is not obscured.
    
    Fixes #1187

 src/libide/sourceview/ide-source-view.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/src/libide/sourceview/ide-source-view.c b/src/libide/sourceview/ide-source-view.c
index 508ccc463..ec3aa1b59 100644
--- a/src/libide/sourceview/ide-source-view.c
+++ b/src/libide/sourceview/ide-source-view.c
@@ -4009,10 +4009,10 @@ ide_source_view_draw_snippets_background (IdeSourceView *self,
   window = gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT);
   width = gdk_window_get_width (window);
 
-  gdk_cairo_set_source_rgba (cr, &priv->snippet_area_background_rgba);
-
   cairo_save (cr);
 
+  gdk_cairo_set_source_rgba (cr, &priv->snippet_area_background_rgba);
+
   for (guint i = 0; i < priv->snippets->length; i++)
     {
       IdeSnippet *snippet = g_queue_peek_nth (priv->snippets, i);
@@ -4044,13 +4044,15 @@ ide_source_view_real_draw_layer (GtkTextView      *text_view,
     {
       if (priv->snippets->length)
         ide_source_view_draw_snippets_background (self, cr);
-    }
 
-  if (layer == GTK_TEXT_VIEW_LAYER_ABOVE)
-    {
       if (g_signal_has_handler_pending (self, signals [DRAW_BUBBLES], 0, FALSE))
         {
+          GdkRectangle rect;
+
+          gtk_text_view_get_visible_rect (text_view, &rect);
+
           cairo_save (cr);
+          cairo_translate (cr, rect.x, rect.y);
           g_signal_emit (self, signals [DRAW_BUBBLES], 0, cr);
           cairo_restore (cr);
         }


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