textview: clip to text window when drawing

When drawing the GtkTextView text, we need to clip to the visible area
so that we do not risk drawing under the border windows.
This commit is contained in:
Christian Hergert 2019-09-13 16:26:26 -07:00
parent 605284bc36
commit 7927f7a440

View File

@ -5403,6 +5403,12 @@ draw_text (GtkWidget *widget,
gtk_snapshot_translate (snapshot, &translate); 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); context = gtk_widget_get_style_context (widget);
gtk_style_context_save_to_node (context, text_view->priv->text_window->css_node); gtk_style_context_save_to_node (context, text_view->priv->text_window->css_node);
gtk_snapshot_render_background (snapshot, context, gtk_snapshot_render_background (snapshot, context,
@ -5433,6 +5439,8 @@ draw_text (GtkWidget *widget,
gtk_snapshot_restore (snapshot); gtk_snapshot_restore (snapshot);
} }
gtk_snapshot_pop (snapshot);
if (translate.x || translate.y) if (translate.x || translate.y)
gtk_snapshot_restore (snapshot); gtk_snapshot_restore (snapshot);
} }