[gnumeric] GnmItemCursor: drop clip in ::draw.



commit 26f0e905a1d69feb7367aff57f48bb43683b325e
Author: Morten Welinder <terra gnome org>
Date:   Thu Oct 3 15:13:30 2013 -0400

    GnmItemCursor: drop clip in ::draw.

 ChangeLog         |    6 ++++++
 NEWS              |    2 ++
 src/item-cursor.c |   14 --------------
 3 files changed, 8 insertions(+), 14 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 01547ac..2f46ec7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-03  Morten Welinder  <terra gnome org>
+
+       * src/item-cursor.c (item_cursor_draw): Drop expose area
+       optimization that may not be correct with current gtk.  See bug
+       #709320.
+
 2013-09-29  Morten Welinder  <terra gnome org>
 
        * src/main-application.c: Include <io.h> for win32.
diff --git a/NEWS b/NEWS
index 8e213e3..ecf333b 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,8 @@ Jean:
 Morten:
        * Fix fuzzed file crash.  [#707875]
        * Use lighter green for function markers.  [#708573]
+       * Fix item cursor problem.  [#709320]
+       * Fix win32 compilation.
 
 --------------------------------------------------------------------------
 Gnumeric 1.12.7
diff --git a/src/item-cursor.c b/src/item-cursor.c
index d8e78cb..a47da27 100644
--- a/src/item-cursor.c
+++ b/src/item-cursor.c
@@ -238,7 +238,6 @@ item_cursor_draw (GocItem const *item, cairo_t *cr)
        int premove = 0;
        gboolean draw_center, draw_external, draw_internal, draw_xor;
        double scale = item->canvas->pixels_per_unit;
-       GdkEventExpose *expose = (GdkEventExpose *) goc_canvas_get_cur_event (item->canvas);
        GdkRGBA *fore = NULL, *back = NULL;
 
 #if 0
@@ -346,19 +345,6 @@ item_cursor_draw (GocItem const *item, cairo_t *cr)
 
        ic->auto_fill_handle_at_top = (draw_handle >= 2);
 
-       if (expose)  {
-               cairo_rectangle (cr, expose->area.x, expose->area.y, expose->area.width, expose->area.height);
-               cairo_clip (cr);
-               /* Avoid guint16 overflow during line drawing.  We can change
-                * the shape we draw, so long as no lines or parts of
-                * rectangles are moved from outside to inside the clipping
-                * region */
-               x0 = MAX (x0, expose->area.x - CLIP_SAFETY_MARGIN);
-               y0 = MAX (y0, expose->area.y - CLIP_SAFETY_MARGIN);
-               x1 = MIN (x1, expose->area.x + expose->area.width + CLIP_SAFETY_MARGIN);
-               y1 = MIN (y1, expose->area.y + expose->area.height + CLIP_SAFETY_MARGIN);
-       }
-
        if (x0 >= x1 || y0 >= y1)
                draw_handle = 0;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]