[graph-gtk] Added "canvas-rightclicked" signal for when a right click isn't on a node



commit 9e3ba25b4b46512b4890b1ded486e6b4d7f4fbca
Author: Isaac Wagner <isaacbw src gnome org>
Date:   Sat Aug 4 12:39:54 2012 -0400

    Added "canvas-rightclicked" signal for when a right click isn't on a node

 graph-gtk/graph-gtk-view.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/graph-gtk/graph-gtk-view.c b/graph-gtk/graph-gtk-view.c
index 4b39391..d69b032 100644
--- a/graph-gtk/graph-gtk-view.c
+++ b/graph-gtk/graph-gtk-view.c
@@ -115,6 +115,16 @@ graph_gtk_view_class_init (GraphGtkViewClass *klass)
 	       G_TYPE_NONE,
 	       1,
 	       GRAPH_TYPE_GTK_NODE);
+
+  g_signal_new("canvas-rightclicked",
+	       GRAPH_TYPE_GTK_VIEW,
+	       G_SIGNAL_RUN_FIRST,
+	       0, //no class method
+	       NULL, //no accumulator,
+	       NULL,
+	       NULL,
+	       G_TYPE_NONE,
+	       0);
 }
 
 static void
@@ -339,15 +349,21 @@ graph_gtk_view_button_pressed(GtkWidget* widget, GdkEventButton* event)
   else if(event->button == 3)
     {
       GList *nodes = NULL;
+      gboolean yes = FALSE;
       for(nodes = g_list_last(self->nodes); nodes != NULL; nodes = nodes->prev)
 	{
 	  GraphGtkNode *node = (GraphGtkNode*)nodes->data;
 	  if(graph_gtk_node_is_within(node, event->x+self->pan_x, event->y+self->pan_y))
 	    {
 	      g_signal_emit_by_name(widget, "node-rightclicked", GRAPH_GTK_NODE(node));
+	      yes = TRUE;
 	      break;
 	    }
 	}
+      if(!yes)
+	{
+	  g_signal_emit_by_name(widget, "canvas-rightclicked");
+	}
     }
   return FALSE;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]