From a1712c2f1ea3e7bc1de99e40bc7f33ab6c92332d Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 14 Nov 2012 04:51:59 +0000 Subject: Fix wonky edge selection behaviour when selecting ports. git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@4814 a436a847-0d15-0410-975c-d299462d15a1 --- src/node.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/node.c') diff --git a/src/node.c b/src/node.c index 5886dba..f49f688 100644 --- a/src/node.c +++ b/src/node.c @@ -352,7 +352,8 @@ ganv_node_default_disconnect(GanvNode* node) { GanvCanvas* canvas = GANV_CANVAS(GANV_ITEM(node)->canvas); if (canvas) { - ganv_canvas_for_each_edge_on(canvas, node, ganv_edge_disconnect); + ganv_canvas_for_each_edge_on( + canvas, node, (GanvEdgeFunc)ganv_edge_disconnect, NULL); } } @@ -363,8 +364,8 @@ ganv_node_default_move(GanvNode* node, { GanvCanvas* canvas = GANV_CANVAS(GANV_ITEM(node)->canvas); ganv_item_move(GANV_ITEM(node), dx, dy); - ganv_canvas_for_each_edge_on(canvas, node, - ganv_edge_update_location); + ganv_canvas_for_each_edge_on( + canvas, node, (GanvEdgeFunc)ganv_edge_update_location, NULL); } @@ -380,10 +381,10 @@ ganv_node_default_move_to(GanvNode* node, NULL); if (node->impl->can_tail) { ganv_canvas_for_each_edge_from( - canvas, node, ganv_edge_update_location); + canvas, node, (GanvEdgeFunc)ganv_edge_update_location, NULL); } else if (node->impl->can_head) { ganv_canvas_for_each_edge_to( - canvas, node, ganv_edge_update_location); + canvas, node, (GanvEdgeFunc)ganv_edge_update_location, NULL); } } @@ -782,3 +783,11 @@ ganv_node_disconnect(GanvNode* node) { GANV_NODE_GET_CLASS(node)->disconnect(node); } + +gboolean +ganv_node_is_selected(GanvNode* node) +{ + gboolean selected = FALSE; + g_object_get(node, "selected", &selected, NULL); + return selected; +} -- cgit v1.2.1