From 13b79813920ca1d94f4ccfbb0dc3c602307a6491 Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Wed, 6 Mar 2013 15:09:54 -0500 Subject: boolops union. fix for disappearing objects (Bug 168907) Fixed bugs: - https://launchpad.net/bugs/168907 (bzr r12176) --- src/splivarot.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/splivarot.cpp') diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 8ce9a012b..061d32554 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -261,10 +261,13 @@ sp_selected_path_boolop(SPDesktop *desktop, bool_op bop, const unsigned int verb theShapeB->ConvertToShape(theShape, origWind[curOrig]); - // les elements arrivent en ordre inverse dans la liste - theShape->Booleen(theShapeB, theShapeA, bop); - - { + if (theShapeA->numberOfEdges() == 0) { + Shape *swap = theShapeB; + theShapeB = theShapeA; + theShapeA = swap; + } else if (theShapeB->numberOfEdges() > 0) { + // les elements arrivent en ordre inverse dans la liste + theShape->Booleen(theShapeB, theShapeA, bop); Shape *swap = theShape; theShape = theShapeA; theShapeA = swap; -- cgit v1.2.3