[gtk/wip/chergert/fix-textview-gutter-snapshot] textview: fix textview drawing in presence of gutters
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/fix-textview-gutter-snapshot] textview: fix textview drawing in presence of gutters
- Date: Fri, 13 Sep 2019 23:03:22 +0000 (UTC)
commit 605284bc3666e9a74a1884ffaeaacd726ac394b7
Author: Christian Hergert <chergert redhat com>
Date: Fri Sep 13 16:02:28 2019 -0700
textview: fix textview drawing in presence of gutters
When drawing a left or top gutter, we need to adjust the origin of the
text snapshot or we risk the gutter drawing above the text.
gtk/gtktextview.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index c9657cef10..4568e735fe 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -5390,6 +5390,18 @@ draw_text (GtkWidget *widget,
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
GtkTextViewPrivate *priv = text_view->priv;
GtkStyleContext *context;
+ graphene_point_t translate = {0};
+
+ if (priv->left_window)
+ translate.x = priv->left_window->allocation.width;
+ if (priv->top_window)
+ translate.y = priv->top_window->allocation.height;
+
+ if (translate.x || translate.y)
+ {
+ gtk_snapshot_save (snapshot);
+ gtk_snapshot_translate (snapshot, &translate);
+ }
context = gtk_widget_get_style_context (widget);
gtk_style_context_save_to_node (context, text_view->priv->text_window->css_node);
@@ -5420,6 +5432,9 @@ draw_text (GtkWidget *widget,
GTK_TEXT_VIEW_GET_CLASS (text_view)->snapshot_layer (text_view, GTK_TEXT_VIEW_LAYER_ABOVE_TEXT,
snapshot);
gtk_snapshot_restore (snapshot);
}
+
+ if (translate.x || translate.y)
+ gtk_snapshot_restore (snapshot);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]