From 863a9cef98a83ce665e28137768575a0100a3498 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 5 Sep 2017 23:29:59 -0400 Subject: [PATCH] entry: Set a clip Now that GtkEntry is using a text node, we were spilling the contents out to the side when the entry is scrolling. Avoid that by setting a clip. --- gtk/gtkentry.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index e5237c7ab3..e2f22dc281 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -3280,10 +3280,17 @@ gtk_entry_snapshot (GtkWidget *widget, GtkEntry *entry = GTK_ENTRY (widget); GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); int width, height; + graphene_rect_t bounds; int i; gtk_widget_get_content_size (widget, &width, &height); + graphene_rect_init (&bounds, + 0, 0, + width, height); + + gtk_snapshot_push_clip (snapshot, &bounds, "Entry Clip"); + /* Draw progress */ if (priv->progress_widget && gtk_widget_get_visible (priv->progress_widget)) gtk_widget_snapshot_child (widget, priv->progress_widget, snapshot); @@ -3311,6 +3318,8 @@ gtk_entry_snapshot (GtkWidget *widget, } gtk_entry_draw_undershoot (entry, snapshot); + + gtk_snapshot_pop (snapshot); } static void