]> git.0d.be Git - empathy.git/commitdiff
Don't accept invitation if we are not invited.
authorXavier Claessens <xclaesse@gmail.com>
Fri, 19 Oct 2007 09:34:22 +0000 (09:34 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 19 Oct 2007 09:34:22 +0000 (09:34 +0000)
2007-10-19  Xavier Claessens  <xclaesse@gmail.com>

* libempathy-gtk/empathy-group-chat.c:
* libempathy/empathy-tp-chatroom.c:Don't accept invitation if we are
not invited.

* libempathy-gtk/empathy-status-icon.c: Correctly toggle visibility
with ALT-F4 on the main windows.

svn path=/trunk/; revision=378

ChangeLog
libempathy-gtk/empathy-group-chat.c
libempathy-gtk/empathy-status-icon.c
libempathy/empathy-tp-chatroom.c

index db6de60484e83bae95fcf5a112253cf1a147a859..0423e6ecb55826688e1eb7227c5ba3a984c36d9d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-10-19  Xavier Claessens  <xclaesse@gmail.com>
+
+       * libempathy-gtk/empathy-group-chat.c:
+       * libempathy/empathy-tp-chatroom.c:Don't accept invitation if we are
+       not invited.
+
+       * libempathy-gtk/empathy-status-icon.c: Correctly toggle visibility
+       with ALT-F4 on the main windows.
+
 2007-10-18  Xavier Claessens  <xclaesse@gmail.com>
 
        * libempathy/empathy-log-manager.c:
index f3c8e8a2061c103693a189eb8d5fdc9657cefa7d..778c08f1db14ef1e835428d14e3551ecd57c3916 100644 (file)
@@ -523,8 +523,9 @@ group_chat_set_tp_chat (EmpathyChat    *chat,
 
        priv->tp_chat = g_object_ref (tp_chat);
 
-       /* FIXME: Ask the user before accepting */
-       empathy_tp_chatroom_accept_invitation (priv->tp_chat);
+       if (empathy_tp_chatroom_get_invitation (priv->tp_chat, NULL, NULL)) {
+               empathy_tp_chatroom_accept_invitation (priv->tp_chat);
+       }
 
        /* Create contact list */
        priv->store = empathy_contact_list_store_new (EMPATHY_CONTACT_LIST (priv->tp_chat));
index 39c4bcfe6d8fc2b05005542dc9d0f060ba9ca926..16a678dcd60a2bba125be55eeb2168d1038bb7c4 100644 (file)
@@ -100,6 +100,8 @@ static void       status_icon_message_received_cb (EmpathyTpChat          *tp_ch
 static void       status_icon_idle_notify_cb      (EmpathyStatusIcon      *icon);
 static void       status_icon_update_tooltip      (EmpathyStatusIcon      *icon);
 static void       status_icon_set_from_state      (EmpathyStatusIcon      *icon);
+static void       status_icon_set_visibility      (EmpathyStatusIcon      *icon,
+                                                  gboolean                visible);
 static void       status_icon_toggle_visibility   (EmpathyStatusIcon      *icon);
 static void       status_icon_activate_cb         (GtkStatusIcon          *status_icon,
                                                   EmpathyStatusIcon      *icon);
@@ -230,7 +232,6 @@ empathy_status_icon_new (GtkWindow *window)
        EmpathyStatusIconPriv *priv;
        EmpathyStatusIcon     *icon;
        gboolean               should_hide;
-       gboolean               visible;
 
        g_return_val_if_fail (GTK_IS_WINDOW (window), NULL);
 
@@ -246,11 +247,8 @@ empathy_status_icon_new (GtkWindow *window)
        empathy_conf_get_bool (empathy_conf_get (),
                              EMPATHY_PREFS_UI_MAIN_WINDOW_HIDDEN,
                              &should_hide);
-       visible = empathy_window_get_is_visible (window);
 
-       if ((!should_hide && !visible) || (should_hide && visible)) {
-               status_icon_toggle_visibility (icon);
-       }
+       status_icon_set_visibility (icon, !should_hide);
 
        return icon;
 }
@@ -391,16 +389,14 @@ status_icon_set_from_state (EmpathyStatusIcon *icon)
 }
 
 static void
-status_icon_toggle_visibility (EmpathyStatusIcon *icon)
+status_icon_set_visibility (EmpathyStatusIcon *icon,
+                           gboolean           visible)
 {
        EmpathyStatusIconPriv *priv;
-       gboolean               visible;
 
        priv = GET_PRIV (icon);
 
-       visible = gtk_window_has_toplevel_focus (GTK_WINDOW (priv->window));
-
-       if (visible) {
+       if (!visible) {
                empathy_window_iconify (priv->window, priv->icon);
                empathy_conf_set_bool (empathy_conf_get (),
                                      EMPATHY_PREFS_UI_MAIN_WINDOW_HIDDEN, TRUE);
@@ -423,6 +419,16 @@ status_icon_toggle_visibility (EmpathyStatusIcon *icon)
        }
 }
 
+static void
+status_icon_toggle_visibility (EmpathyStatusIcon *icon)
+{
+       EmpathyStatusIconPriv *priv = GET_PRIV (icon);
+       gboolean               visible;
+
+       visible = gtk_window_is_active (priv->window);
+       status_icon_set_visibility (icon, !visible);
+}
+
 static void
 status_icon_activate_cb (GtkStatusIcon     *status_icon,
                         EmpathyStatusIcon *icon)
@@ -446,7 +452,7 @@ status_icon_delete_event_cb (GtkWidget         *widget,
                             GdkEvent          *event,
                             EmpathyStatusIcon *icon)
 {
-       status_icon_toggle_visibility (icon);
+       status_icon_set_visibility (icon, FALSE);
 
        return TRUE;
 }
@@ -505,14 +511,11 @@ status_icon_create_menu (EmpathyStatusIcon *icon)
 
        empathy_glade_connect (glade,
                              icon,
+                             "tray_show_list", "toggled", status_icon_show_hide_window_cb,
                              "tray_new_message", "activate", status_icon_new_message_cb,
                              "tray_quit", "activate", status_icon_quit_cb,
                              NULL);
 
-       g_signal_connect (priv->show_window_item, "toggled",
-                         G_CALLBACK (status_icon_show_hide_window_cb),
-                         icon);
-
        g_object_unref (glade);
 }
 
@@ -538,7 +541,10 @@ static void
 status_icon_show_hide_window_cb (GtkWidget         *widget,
                                 EmpathyStatusIcon *icon)
 {
-       status_icon_toggle_visibility (icon);
+       gboolean visible;
+
+       visible = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget));
+       status_icon_set_visibility (icon, visible);
 }
 
 static void
index 60e0dd7cde35d731dcfa09003be5451f91f393b0..13b43ba37d252741b993b7277031b5d13aa986dc 100644 (file)
@@ -183,10 +183,10 @@ empathy_tp_chatroom_get_invitation (EmpathyTpChatroom  *chatroom,
 
        priv = GET_PRIV (chatroom);
 
-       if (*contact) {
+       if (contact) {
                *contact = priv->invitor;
        }
-       if (*message) {
+       if (message) {
                *message = priv->invit_message;
        }
 
@@ -203,6 +203,10 @@ empathy_tp_chatroom_accept_invitation (EmpathyTpChatroom *chatroom)
 
        priv = GET_PRIV (chatroom);
 
+       if (!priv->is_invited) {
+               return;
+       }
+
        /* Clear invitation data */
        priv->is_invited = FALSE;
        if (priv->invitor) {