summaryrefslogtreecommitdiffstats
path: root/src/splivarot.cpp
diff options
context:
space:
mode:
authorAlvin Penner <penner@vaxxine.com>2013-03-06 20:09:54 +0000
committerapenner <penner@vaxxine.com>2013-03-06 20:09:54 +0000
commit13b79813920ca1d94f4ccfbb0dc3c602307a6491 (patch)
treeccaf75286aec4a34c3148e9070a9ca080d770b35 /src/splivarot.cpp
parentAdded null check (should fix Bug #1051017 ) (diff)
downloadinkscape-13b79813920ca1d94f4ccfbb0dc3c602307a6491.tar.gz
inkscape-13b79813920ca1d94f4ccfbb0dc3c602307a6491.zip
boolops union. fix for disappearing objects (Bug 168907)
Fixed bugs: - https://launchpad.net/bugs/168907 (bzr r12176)
Diffstat (limited to 'src/splivarot.cpp')
-rw-r--r--src/splivarot.cpp11
1 files changed, 7 insertions, 4 deletions
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;