From 0cdbc082ab193835cc44f9e9b6be1e7d59b5298e Mon Sep 17 00:00:00 2001 From: esdrasrenan Date: Tue, 16 Dec 2025 00:21:43 -0300 Subject: [PATCH] fix(desktop): evita sobreposicao entre janelas de chat e hub MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fecha janelas individuais de chat ao abrir o Hub (2+ sessoes) - Fecha o Hub ao voltar para apenas 1 sessao - Evita problemas de clique causados por sobreposicao de janelas 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- apps/desktop/src-tauri/src/chat.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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