]> git.0d.be Git - empathy.git/commitdiff
Make Invite Participant menu entry sensitive only when available
authorDanielle Madeley <danielle.madeley@collabora.co.uk>
Mon, 21 Dec 2009 02:05:10 +0000 (13:05 +1100)
committerDanielle Madeley <danielle.madeley@collabora.co.uk>
Mon, 21 Dec 2009 09:55:03 +0000 (20:55 +1100)
src/empathy-chat-window.c

index 67bf7d9e7bae30775c4f2c619349256584454c83..6b0dc5d00db971192667e6a43aed51c13e3d6c4e 100644 (file)
@@ -346,6 +346,32 @@ chat_window_menu_context_update (EmpathyChatWindowPriv *priv,
        gtk_action_set_sensitive (priv->menu_conv_insert_smiley, is_connected);
 }
 
        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)
 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_menu_context_update (priv,
                                         num_pages);
 
+       chat_window_conversation_menu_update (priv, window);
+
        chat_window_contact_menu_update (priv,
                                         window);
 
        chat_window_contact_menu_update (priv,
                                         window);