From 2840411971e6e2a25a75b05a4ab0a0d8922b7fcb Mon Sep 17 00:00:00 2001 From: Danielle Madeley Date: Mon, 21 Dec 2009 13:05:10 +1100 Subject: [PATCH] Make Invite Participant menu entry sensitive only when available --- src/empathy-chat-window.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 67bf7d9e..6b0dc5d0 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -346,6 +346,32 @@ chat_window_menu_context_update (EmpathyChatWindowPriv *priv, gtk_action_set_sensitive (priv->menu_conv_insert_smiley, is_connected); } +static void +chat_window_conversation_menu_update (EmpathyChatWindowPriv *priv, + EmpathyChatWindow *self) +{ + EmpathyTpChat *tp_chat; + TpConnection *connection; + GtkAction *action; + gboolean sensitive = FALSE; + + g_return_if_fail (priv->current_chat != NULL); + + action = gtk_ui_manager_get_action (priv->ui_manager, + "/chats_menubar/menu_conv/menu_conv_invite_participant"); + tp_chat = empathy_chat_get_tp_chat (priv->current_chat); + + if (tp_chat != NULL) { + connection = empathy_tp_chat_get_connection (tp_chat); + + sensitive = empathy_tp_chat_can_add_contact (tp_chat) && + (tp_connection_get_status (connection, NULL) == + TP_CONNECTION_STATUS_CONNECTED); + } + + gtk_action_set_sensitive (action, sensitive); +} + static void chat_window_contact_menu_update (EmpathyChatWindowPriv *priv, EmpathyChatWindow *window) @@ -537,6 +563,8 @@ chat_window_update (EmpathyChatWindow *window) chat_window_menu_context_update (priv, num_pages); + chat_window_conversation_menu_update (priv, window); + chat_window_contact_menu_update (priv, window); -- 2.39.2