ekiga r6797 - in trunk: . lib/engine/gui/gtk-frontend



Author: jpuydt
Date: Tue Sep  2 11:10:17 2008
New Revision: 6797
URL: http://svn.gnome.org/viewvc/ekiga?rev=6797&view=rev

Log:
Fixed bug #550073.

Modified:
   trunk/ChangeLog
   trunk/lib/engine/gui/gtk-frontend/book-view-gtk.cpp
   trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp

Modified: trunk/lib/engine/gui/gtk-frontend/book-view-gtk.cpp
==============================================================================
--- trunk/lib/engine/gui/gtk-frontend/book-view-gtk.cpp	(original)
+++ trunk/lib/engine/gui/gtk-frontend/book-view-gtk.cpp	Tue Sep  2 11:10:17 2008
@@ -356,8 +356,18 @@
 
 	if (event->type == GDK_BUTTON_PRESS && event->button == 3) {
 
+	  Ekiga::TemporaryMenuBuilder temp;
 	  MenuBuilderGtk builder;
+
+	  BOOK_VIEW_GTK (data)->priv->book.populate_menu (temp);
 	  contact->populate_menu (builder);
+
+	  if (!temp.empty ()) {
+
+	    builder.add_separator ();
+	    temp.populate_menu (builder);
+	  }
+
 	  if (!builder.empty ()) {
 
 	    gtk_widget_show_all (builder.menu);

Modified: trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
==============================================================================
--- trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp	(original)
+++ trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp	Tue Sep  2 11:10:17 2008
@@ -145,7 +145,8 @@
 static void on_clicked_show_heap_group_menu (Ekiga::Heap* heap,
 					     const std::string name,
 					     GdkEventButton* event);
-static void on_clicked_show_presentity_menu (Ekiga::Presentity* presentity,
+static void on_clicked_show_presentity_menu (Ekiga::Heap* heap,
+					     Ekiga::Presentity* presentity,
 					     GdkEventButton* event);
 
 static void on_clicked_fold (RosterViewGtk* self,
@@ -427,13 +428,23 @@
 }
 
 static void
-on_clicked_show_presentity_menu (Ekiga::Presentity* presentity,
+on_clicked_show_presentity_menu (Ekiga::Heap* heap,
+				 Ekiga::Presentity* presentity,
 				 GdkEventButton* event)
 {
+  Ekiga::TemporaryMenuBuilder temp;
   MenuBuilderGtk builder;
+
+  heap->populate_menu (temp);
   presentity->populate_menu (builder);
-  if (!builder.empty ()) {
 
+  if (!temp.empty ()) {
+
+    builder.add_separator ();
+    temp.populate_menu (builder);
+  }
+
+  if (!builder.empty ()) {
     gtk_widget_show_all (builder.menu);
     gtk_menu_popup (GTK_MENU (builder.menu), NULL, NULL,
 		    NULL, NULL, event->button, event->time);
@@ -694,7 +705,7 @@
       case TYPE_PRESENTITY:
 
 	if (event->type == GDK_BUTTON_PRESS && event->button == 3)
-	  on_clicked_show_presentity_menu (presentity, event);
+	  on_clicked_show_presentity_menu (heap, presentity, event);
 	if (event->type == GDK_2BUTTON_PRESS)
 	  on_clicked_trigger_presentity (presentity);
 	break;
@@ -953,6 +964,7 @@
     gtk_tree_store_set (self->priv->store, &iter,
 			COLUMN_TYPE, TYPE_PRESENTITY,
 			COLUMN_OFFLINE, active,
+			COLUMN_HEAP, &heap,
 			COLUMN_PRESENTITY, &presentity,
 			COLUMN_NAME, presentity.get_name ().c_str (),
 			COLUMN_STATUS, presentity.get_status ().c_str (),
@@ -969,6 +981,7 @@
     gtk_tree_store_set (self->priv->store, &iter,
 			COLUMN_TYPE, TYPE_PRESENTITY,
 			COLUMN_OFFLINE, active,
+			COLUMN_HEAP, &heap,
 			COLUMN_PRESENTITY, &presentity,
 			COLUMN_NAME, presentity.get_name ().c_str (),
 			COLUMN_STATUS, presentity.get_status ().c_str (),



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