From b92ad3740762d958364d4f9421095b088f0d845b Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 9 Mar 2010 17:25:14 +0100 Subject: Don't display context menu when right clicking on a fake group Those can't be renamed. --- libempathy-gtk/empathy-contact-list-view.c | 16 ++++++++++++---- libempathy-gtk/empathy-contact-list-view.h | 3 ++- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'libempathy-gtk') diff --git a/libempathy-gtk/empathy-contact-list-view.c b/libempathy-gtk/empathy-contact-list-view.c index 5b6686896..71658370a 100644 --- a/libempathy-gtk/empathy-contact-list-view.c +++ b/libempathy-gtk/empathy-contact-list-view.c @@ -1510,7 +1510,8 @@ empathy_contact_list_view_get_flags (EmpathyContactListView *view) } gchar * -empathy_contact_list_view_get_selected_group (EmpathyContactListView *view) +empathy_contact_list_view_get_selected_group (EmpathyContactListView *view, + gboolean *is_fake_group) { EmpathyContactListViewPriv *priv; GtkTreeSelection *selection; @@ -1518,6 +1519,7 @@ empathy_contact_list_view_get_selected_group (EmpathyContactListView *view) GtkTreeModel *model; gboolean is_group; gchar *name; + gboolean fake; g_return_val_if_fail (EMPATHY_IS_CONTACT_LIST_VIEW (view), NULL); @@ -1531,6 +1533,7 @@ empathy_contact_list_view_get_selected_group (EmpathyContactListView *view) gtk_tree_model_get (model, &iter, EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group, EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name, + EMPATHY_CONTACT_LIST_STORE_COL_IS_FAKE_GROUP, &fake, -1); if (!is_group) { @@ -1538,6 +1541,9 @@ empathy_contact_list_view_get_selected_group (EmpathyContactListView *view) return NULL; } + if (is_fake_group != NULL) + *is_fake_group = fake; + return name; } @@ -1574,7 +1580,7 @@ contact_list_view_group_remove_activate_cb (GtkMenuItem *menuitem, EmpathyContactListViewPriv *priv = GET_PRIV (view); gchar *group; - group = empathy_contact_list_view_get_selected_group (view); + group = empathy_contact_list_view_get_selected_group (view, NULL); if (group) { gchar *text; GtkWindow *parent; @@ -1602,6 +1608,7 @@ empathy_contact_list_view_get_group_menu (EmpathyContactListView *view) GtkWidget *menu; GtkWidget *item; GtkWidget *image; + gboolean is_fake_group; g_return_val_if_fail (EMPATHY_IS_CONTACT_LIST_VIEW (view), NULL); @@ -1610,8 +1617,9 @@ empathy_contact_list_view_get_group_menu (EmpathyContactListView *view) return NULL; } - group = empathy_contact_list_view_get_selected_group (view); - if (!group) { + group = empathy_contact_list_view_get_selected_group (view, &is_fake_group); + if (!group || is_fake_group) { + /* We can't alter fake groups */ return NULL; } diff --git a/libempathy-gtk/empathy-contact-list-view.h b/libempathy-gtk/empathy-contact-list-view.h index 17de5239b..41b968dbf 100644 --- a/libempathy-gtk/empathy-contact-list-view.h +++ b/libempathy-gtk/empathy-contact-list-view.h @@ -73,7 +73,8 @@ EmpathyContactListView * empathy_contact_list_view_new (Empathy EmpathyContactFeatureFlags contact_features); EmpathyContact * empathy_contact_list_view_dup_selected (EmpathyContactListView *view); EmpathyContactListFlags empathy_contact_list_view_get_flags (EmpathyContactListView *view); -gchar * empathy_contact_list_view_get_selected_group (EmpathyContactListView *view); +gchar * empathy_contact_list_view_get_selected_group (EmpathyContactListView *view, + gboolean *is_fake_group); GtkWidget * empathy_contact_list_view_get_contact_menu (EmpathyContactListView *view); GtkWidget * empathy_contact_list_view_get_group_menu (EmpathyContactListView *view); -- cgit v1.2.3