textview: clip to text window when drawing
authorChristian Hergert <chergert@redhat.com>
Fri, 13 Sep 2019 23:26:26 +0000 (16:26 -0700)
committerChristian Hergert <chergert@redhat.com>
Fri, 13 Sep 2019 23:44:04 +0000 (16:44 -0700)
When drawing the GtkTextView text, we need to clip to the visible area
so that we do not risk drawing under the border windows.

gtk/gtktextview.c

index 4568e735feffb8c5aa2aa7e1236d8bd1a48c8dfc..dbf89dfa8486de47a85522686234e428c787cd67 100644 (file)
@@ -5403,6 +5403,12 @@ draw_text (GtkWidget   *widget,
       gtk_snapshot_translate (snapshot, &translate);
     }
 
+  gtk_snapshot_push_clip (snapshot,
+                          &GRAPHENE_RECT_INIT (0,
+                                               0,
+                                               SCREEN_WIDTH (widget),
+                                               SCREEN_HEIGHT (widget)));
+
   context = gtk_widget_get_style_context (widget);
   gtk_style_context_save_to_node (context, text_view->priv->text_window->css_node);
   gtk_snapshot_render_background (snapshot, context,
@@ -5433,6 +5439,8 @@ draw_text (GtkWidget   *widget,
       gtk_snapshot_restore (snapshot);
     }
 
+  gtk_snapshot_pop (snapshot);
+
   if (translate.x || translate.y)
     gtk_snapshot_restore (snapshot);
 }