[gimp] app: draw Wilber as in gimp-2.6



commit 779756bc51975c5c158d49a98b1e4142530d658f
Author: Massimo Valentini <mvalentini src gnome org>
Date:   Fri Sep 2 18:07:34 2011 +0200

    app: draw Wilber as in gimp-2.6
    
    Apparently wilber_get_extents is called the first time
    with a cairo_t with device_offset different than the other
    times, since the path is copied the first time, afterwards
    it appears offset.

 app/widgets/gimpcairo-wilber.c |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)
---
diff --git a/app/widgets/gimpcairo-wilber.c b/app/widgets/gimpcairo-wilber.c
index dbfead1..62fe06f 100644
--- a/app/widgets/gimpcairo-wilber.c
+++ b/app/widgets/gimpcairo-wilber.c
@@ -86,21 +86,20 @@ gimp_cairo_wilber_get_size (cairo_t *cr,
 
 
 static void
-wilber_get_extents (cairo_t *cr)
+wilber_get_extents (cairo_t *unused)
 {
   if (! wilber_cairo_path)
     {
-      cairo_save (cr);
+      cairo_surface_t *s = cairo_image_surface_create (CAIRO_FORMAT_A8, 1, 1);
+      cairo_t         *cr = cairo_create (s);
 
       wilber_parse_path_data (cr, wilber_path);
-
-      cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
       cairo_fill_extents (cr, &wilber_x1, &wilber_y1, &wilber_x2, &wilber_y2);
 
       wilber_cairo_path = cairo_copy_path (cr);
-      cairo_new_path (cr);
 
-      cairo_restore (cr);
+      cairo_destroy (cr);
+      cairo_surface_destroy (s);
     }
 }
 



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