[glabels] Fix drawing beyond drawing area viewport (bug #762307).
- From: Jim Evins <jimevins src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glabels] Fix drawing beyond drawing area viewport (bug #762307).
- Date: Mon, 29 Feb 2016 03:09:41 +0000 (UTC)
commit 5bc117b645183651375e28c60bf8b1dfd7d712a5
Author: Jim Evins <evins snaught com>
Date: Sun Feb 28 22:02:38 2016 -0500
Fix drawing beyond drawing area viewport (bug #762307).
Fixes Bug #762307. Clip the drawing area's bin_window to a
viewport determined by the widget's physical window size and
current scroll adjustments.
src/view.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/src/view.c b/src/view.c
index b7eff71..69590b8 100644
--- a/src/view.c
+++ b/src/view.c
@@ -563,6 +563,17 @@ draw_cb (glView *view,
bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view->canvas));
bin_cr = gdk_cairo_create (bin_window);
+ /* Figure out viewport and clip to this region. */
+ GtkAdjustment *hadj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (view->canvas));
+ GtkAdjustment *vadj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (view->canvas));
+ GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (view->canvas));
+ gdouble window_x0 = gtk_adjustment_get_value (hadj);
+ gdouble window_y0 = gtk_adjustment_get_value (vadj);
+ gdouble window_w = gdk_window_get_width (window);
+ gdouble window_h = gdk_window_get_height (window);
+ cairo_rectangle (bin_cr, window_x0, window_y0, window_w, window_h);
+ cairo_clip (bin_cr);
+
draw_layers (view, bin_cr);
cairo_destroy (bin_cr);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]