From 784b5bd127a9cb1bb725f6c3e1e5338015383037 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 7 Dec 2009 15:15:03 +0000 Subject: 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 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index c2e32bc17..7d2401677 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; } -- cgit v1.2.3