]> git.sur5r.net Git - glabels/commitdiff
Fix selection problem.
authorJim Evins <evins@snaught.com>
Mon, 31 May 2010 02:58:33 +0000 (22:58 -0400)
committerJim Evins <evins@snaught.com>
Mon, 31 May 2010 03:03:03 +0000 (23:03 -0400)
Clear existing paths before creating new test paths.  This would occasionally
cause the wrong object to be selected because the in_fill or in_stroke
tests would be satisfied using left-over paths from previous tests.

src/label-barcode.c
src/label-box.c
src/label-ellipse.c
src/label-image.c
src/label-line.c
src/label-text.c

index 0e12b3d4b68d79498343e498cbc44b17f713435e..fe108fd07855f80fad4adb0794619e15f233644f 100644 (file)
@@ -566,6 +566,7 @@ object_at (glLabelObject *object,
 
         gl_label_object_get_size (object, &w, &h);
 
+        cairo_new_path (cr);
         cairo_rectangle (cr, 0.0, 0.0, w, h);
 
         if (cairo_in_fill (cr, x, y))
index 2d714f8b1de7cc5746da7bb369c5e8cbe4d63a46..3088ef109da516c1eb043683fc296b62ef1e4491 100644 (file)
@@ -477,6 +477,7 @@ object_at (glLabelObject *object,
 
         gl_label_object_get_size (object, &w, &h);
 
+        cairo_new_path (cr);
         cairo_rectangle (cr, 0.0, 0.0, w, h);
 
         if (cairo_in_fill (cr, x, y))
index 6dbc78909f07eb85c15c52664d30a3559e952ab4..5de25a7252d1dd818ff16beba8027a1fff6ede64 100644 (file)
@@ -478,6 +478,7 @@ object_at (glLabelObject *object,
 
         gl_label_object_get_size (object, &w, &h);
 
+        cairo_new_path (cr);
         gl_cairo_ellipse_path (cr, w/2, h/2);
 
         if (cairo_in_fill (cr, x, y))
index b24d1a76d9c790bca55ec5c1f1e2d6c9952a52f7..f957351376bed3f2b61c76c7bfb054aaf60d3b97 100644 (file)
@@ -459,6 +459,7 @@ object_at (glLabelObject *object,
 
         gl_label_object_get_size (object, &w, &h);
 
+        cairo_new_path (cr);
         cairo_rectangle (cr, 0.0, 0.0, w, h);
 
         if (cairo_in_fill (cr, x, y))
index 0b58815c5c0437cebd438a720f6246bda85af144..e8b66e95c819e9494aba30c4398376640b3334bc 100644 (file)
@@ -386,6 +386,7 @@ object_at (glLabelObject *object,
 
         gl_label_object_get_size (object, &w, &h);
 
+        cairo_new_path (cr);
         cairo_move_to (cr, 0, 0);
         cairo_line_to (cr, w, h);
 
index 7206bedd6230c8e546aea9d78676055d20de4ccf..1cb38ae5c9ea490beba2219f9300e14f42c5e26e 100644 (file)
@@ -1208,6 +1208,7 @@ object_at (glLabelObject *object,
 
         if ( (x >= 0) && (x <= w) && (y >= 0) && (y <= h) )
         {
+                cairo_new_path (cr);
                 set_text_path (GL_LABEL_TEXT (object), cr, TRUE, NULL);
                 if (cairo_in_fill (cr, x, y))
                 {
@@ -1217,6 +1218,7 @@ object_at (glLabelObject *object,
 
         if (gl_label_object_is_selected (object))
         {
+                cairo_new_path (cr);
                 cairo_rectangle (cr, 0, 0, w, h);
                 if (cairo_in_stroke (cr, x, y))
                 {