summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-02-16 14:55:39 +0100
committerErich Eckner <git@eckner.net>2018-02-16 14:55:39 +0100
commit7f528417ab6e4899de1abbc943f6813654d7f028 (patch)
treea0707a934f47f861f4694a70390c6aa842372577
parentade3628c95ee853fe392c85a0fb9d261279e56ef (diff)
downloaddbmodel-7f528417ab6e4899de1abbc943f6813654d7f028.tar.xz
src/boxsidehub.cpp: unknot multiple arrows between same tables
-rw-r--r--src/boxsidehub.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/boxsidehub.cpp b/src/boxsidehub.cpp
index 4dfb460..b4cbf0d 100644
--- a/src/boxsidehub.cpp
+++ b/src/boxsidehub.cpp
@@ -51,10 +51,15 @@ static bool
itemLessThan(const ConnectorRealPair &a, const ConnectorRealPair &b)
{
int r = cmpAngle(a.second, b.second);
- if (r == 0) {
+ if (r != 0)
+ return r < 0;
+ r = a.first->isStart() - b.first->isStart();
+ if (r != 0)
+ return r > 0;
+ if (a.first->isStart())
return a.first->owner() < b.first->owner();
- }
- return r < 0;
+ else
+ return a.first->owner() > b.first->owner();
}
// |