From e18aa5cf1c13ddc3bbcb8c007d85b8556baa7d85 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 25 Apr 2012 03:46:01 +0000 Subject: Fix drag connection curves in vertical canvas. git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@4272 a436a847-0d15-0410-975c-d299462d15a1 --- src/node.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/node.c b/src/node.c index 7c4b0d1..feba244 100644 --- a/src/node.c +++ b/src/node.c @@ -208,13 +208,24 @@ ganv_node_default_tail_vector(const GanvNode* self, double* dx, double* dy) { + GanvCanvas* canvas = GANV_CANVAS(GANV_ITEM(self)->canvas); + g_object_get(G_OBJECT(self), "x", x, "y", y, NULL); - *dx = 1.0; - *dy = 0.0; + switch (canvas->direction) { + case GANV_DIRECTION_RIGHT: + *dx = 1.0; + *dy = 0.0; + break; + case GANV_DIRECTION_DOWN: + *dx = 0.0; + *dy = 1.0; + break; + } + ganv_item_i2w(GANV_ITEM(self)->parent, x, y); } @@ -226,13 +237,24 @@ ganv_node_default_head_vector(const GanvNode* self, double* dx, double* dy) { + GanvCanvas* canvas = GANV_CANVAS(GANV_ITEM(self)->canvas); + g_object_get(G_OBJECT(self), "x", x, "y", y, NULL); - *dx = -1.0; - *dy = 0.0; + switch (canvas->direction) { + case GANV_DIRECTION_RIGHT: + *dx = -1.0; + *dy = 0.0; + break; + case GANV_DIRECTION_DOWN: + *dx = 0.0; + *dy = -1.0; + break; + } + ganv_item_i2w(GANV_ITEM(self)->parent, x, y); } -- cgit v1.2.1