diff --git a/apps/desktop/src-tauri/src/chat.rs b/apps/desktop/src-tauri/src/chat.rs index c104e4a..972cd33 100644 --- a/apps/desktop/src-tauri/src/chat.rs +++ b/apps/desktop/src-tauri/src/chat.rs @@ -1004,6 +1004,14 @@ async fn process_chat_update( // SIMPLIFICADO: Removido inner_size() que bloqueava a UI thread if current_sessions.len() > 1 { // Multiplas sessoes - usar hub window + // Primeiro, fechar todas as janelas individuais de chat para evitar sobreposicao + for session in ¤t_sessions { + let label = format!("chat-{}", session.ticket_id); + if let Some(window) = app.get_webview_window(&label) { + let _ = window.close(); + } + } + if app.get_webview_window(HUB_WINDOW_LABEL).is_none() { // Hub nao existe - criar minimizado let _ = open_hub_window(app); @@ -1017,6 +1025,11 @@ async fn process_chat_update( } } else { // Uma sessao - abrir janela individual + // Fechar o Hub se estiver aberto (nao precisa mais quando ha apenas 1 chat) + if let Some(hub) = app.get_webview_window(HUB_WINDOW_LABEL) { + let _ = hub.close(); + } + // Fallback: se nao conseguimos detectar delta, pega a sessao com mais unread e mais recente. let session_to_show = if best_delta > 0 { best_session