aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVitaly Minko <vitaly.minko@gmail.com>2010-10-21 23:07:33 +0800
committerVitaly Minko <vitaly.minko@gmail.com>2010-10-21 23:07:33 +0800
commit2324b39d322867c4ef583265cf7c5d840a72cb02 (patch)
tree875ea64a8512032f80845b5de0df8d84780a07c2 /src
parent063c4fb406eda4278493cc3ee24ad63a12b83996 (diff)
downloadgsoc2013-empathy-2324b39d322867c4ef583265cf7c5d840a72cb02.tar
gsoc2013-empathy-2324b39d322867c4ef583265cf7c5d840a72cb02.tar.gz
gsoc2013-empathy-2324b39d322867c4ef583265cf7c5d840a72cb02.tar.bz2
gsoc2013-empathy-2324b39d322867c4ef583265cf7c5d840a72cb02.tar.lz
gsoc2013-empathy-2324b39d322867c4ef583265cf7c5d840a72cb02.tar.xz
gsoc2013-empathy-2324b39d322867c4ef583265cf7c5d840a72cb02.tar.zst
gsoc2013-empathy-2324b39d322867c4ef583265cf7c5d840a72cb02.zip
Return existing default chat window when it's hidden, just restore it in this case (#625780).
Diffstat (limited to 'src')
-rw-r--r--src/empathy-chat-window.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index a92e28b2a..f8cc8ff82 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -2112,9 +2112,8 @@ empathy_chat_window_get_dialog (EmpathyChatWindow *window)
return priv->dialog;
}
-/* Returns the window to open a new tab in if there is only one window
- * visble, otherwise, returns NULL indicating that a new window should
- * be added.
+/* Returns the window to open a new tab in if there is a suitable window,
+ * otherwise, returns NULL indicating that a new window should be added.
*/
static EmpathyChatWindow *
empathy_chat_window_get_default (gboolean room)
@@ -2137,26 +2136,27 @@ empathy_chat_window_get_default (gboolean room)
EmpathyChatWindowPriv *priv;
EmpathyChatWindow *chat_window;
GtkWidget *dialog;
+ guint nb_rooms, nb_private;
chat_window = l->data;
priv = GET_PRIV (chat_window);
dialog = empathy_chat_window_get_dialog (chat_window);
- if (empathy_window_get_is_visible (GTK_WINDOW (dialog))) {
- guint nb_rooms, nb_private;
- empathy_chat_window_get_nb_chats (chat_window, &nb_rooms, &nb_private);
- /* Skip the window if there aren't any rooms in it */
- if (room && nb_rooms == 0)
- continue;
+ empathy_chat_window_get_nb_chats (chat_window, &nb_rooms, &nb_private);
- /* Skip the window if there aren't any 1-1 chats in it */
- if (!room && nb_private == 0)
- continue;
+ /* Skip the window if there aren't any rooms in it */
+ if (room && nb_rooms == 0)
+ continue;
- /* Found a visible window on this desktop */
- return chat_window;
- }
+ /* Skip the window if there aren't any 1-1 chats in it */
+ if (!room && nb_private == 0)
+ continue;
+
+ /* Found a window on this desktop, make it visible if necessary */
+ if (!empathy_window_get_is_visible (GTK_WINDOW (dialog)))
+ empathy_window_present (GTK_WINDOW (dialog));
+ return chat_window;
}
return NULL;