From a7a3bce6d878c1150946a99f85bc58fc4fcd6256 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 10 Dec 2011 05:21:00 +0000 Subject: Fix event handling. git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@3852 a436a847-0d15-0410-975c-d299462d15a1 --- src/node.c | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) (limited to 'src/node.c') diff --git a/src/node.c b/src/node.c index 843fb27..6092924 100644 --- a/src/node.c +++ b/src/node.c @@ -45,12 +45,6 @@ enum { PROP_DRAGGABLE }; -static gboolean -on_event(GanvNode* node, GdkEvent* event) -{ - return GANV_NODE_GET_CLASS(node)->on_event(node, event); -} - static void ganv_node_init(GanvNode* node) { @@ -71,9 +65,6 @@ ganv_node_init(GanvNode* node) impl->selected = FALSE; impl->highlighted = FALSE; impl->draggable = FALSE; - - g_signal_connect(G_OBJECT(node), - "event", G_CALLBACK(on_event), node); } static void @@ -120,9 +111,9 @@ ganv_node_set_property(GObject* object, g_return_if_fail(object != NULL); g_return_if_fail(GANV_IS_NODE(object)); - GanvNode* node = GANV_NODE(object); - GanvNodeImpl* impl = node->impl; - GanvItem* item = GANV_ITEM(object); + GanvNode* node = GANV_NODE(object); + GanvNodeImpl* impl = node->impl; + GanvItem* item = GANV_ITEM(object); switch (prop_id) { SET_CASE(PARTNER, object, impl->partner); @@ -164,9 +155,9 @@ ganv_node_get_property(GObject* object, g_return_if_fail(object != NULL); g_return_if_fail(GANV_IS_NODE(object)); - GanvNode* node = GANV_NODE(object); - GanvNodeImpl* impl = node->impl; - GanvItem* item = GANV_ITEM(object); + GanvNode* node = GANV_NODE(object); + GanvNodeImpl* impl = node->impl; + GanvItem* item = GANV_ITEM(object); typedef char* gstring; @@ -329,9 +320,10 @@ ganv_node_default_move_to(GanvNode* node, } static gboolean -ganv_node_default_on_event(GanvNode* node, - GdkEvent* event) +ganv_node_default_event(GanvItem* item, + GdkEvent* event) { + GanvNode* node = GANV_NODE(item); GanvCanvas* canvas = GANV_CANVAS(GANV_ITEM(node)->canvas); // FIXME: put these somewhere better @@ -580,15 +572,16 @@ ganv_node_class_init(GanvNodeClass* class) object_class->destroy = ganv_node_destroy; item_class->realize = ganv_node_realize; - - class->disconnect = ganv_node_default_disconnect; - class->move = ganv_node_default_move; - class->move_to = ganv_node_default_move_to; - class->tick = ganv_node_default_tick; - class->tail_vector = ganv_node_default_tail_vector; - class->head_vector = ganv_node_default_head_vector; - class->on_event = ganv_node_default_on_event; + item_class->event = ganv_node_default_event; + + class->disconnect = ganv_node_default_disconnect; + class->move = ganv_node_default_move; + class->move_to = ganv_node_default_move_to; + class->tick = ganv_node_default_tick; + class->tail_vector = ganv_node_default_tail_vector; + class->head_vector = ganv_node_default_head_vector; } + gboolean ganv_node_can_tail(const GanvNode* self) { -- cgit v1.2.1