[empathy: 1/2] Return existing default chat window when it's hidden, just restore it in this case (#625780).



commit 2324b39d322867c4ef583265cf7c5d840a72cb02
Author: Vitaly Minko <vitaly minko gmail com>
Date:   Thu Oct 21 19:07:33 2010 +0400

    Return existing default chat window when it's hidden, just restore it in this case (#625780).

 src/empathy-chat-window.c |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)
---
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index a92e28b..f8cc8ff 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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]