[empathy] empathy_chat_window_get_default: check if the window has at least one room



commit 784b5bd127a9cb1bb725f6c3e1e5338015383037
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Mon Dec 7 15:15:03 2009 +0000

    empathy_chat_window_get_default: check if the window has at least one room
    
    Also, check if the window has a least one 1-1 chat before adding a new one.
    That way we won't mix 1-1 and muc chat if user doesn't want to (he can still
    re-arrange the tabs manually).

 src/empathy-chat-window.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index c2e32bc..7d24016 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -1852,6 +1852,7 @@ empathy_chat_window_get_default (gboolean room_filter)
 {
 	GList    *l;
 	gboolean  separate_windows = TRUE;
+	guint nb_rooms;
 
 	empathy_conf_get_bool (empathy_conf_get (),
 			      EMPATHY_PREFS_UI_SEPARATE_CHAT_WINDOWS,
@@ -1871,8 +1872,17 @@ empathy_chat_window_get_default (gboolean room_filter)
 		priv = GET_PRIV (chat_window);
 
 		dialog = empathy_chat_window_get_dialog (chat_window);
-		if (empathy_window_get_is_visible (GTK_WINDOW (dialog)) &&
-				empathy_chat_is_room (priv->current_chat) == room_filter) {
+		if (empathy_window_get_is_visible (GTK_WINDOW (dialog))) {
+			nb_rooms = empathy_chat_window_get_nb_rooms (chat_window);
+
+			/* We add a new room only if the window has at least one room */
+			if (room_filter && nb_rooms == 0)
+				continue;
+
+			/* We add a new 1-1 chat only if the window has at least one 1-1 chat */
+			if (!room_filter && nb_rooms > 0)
+				continue;
+
 			/* Found a visible window on this desktop */
 			return chat_window;
 		}



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