fix(desktop): evita sobreposicao entre janelas de chat e hub
- 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 <noreply@anthropic.com>
This commit is contained in:
parent
2ba5f71580
commit
0cdbc082ab
1 changed files with 13 additions and 0 deletions
|
|
@ -1004,6 +1004,14 @@ async fn process_chat_update(
|
||||||
// SIMPLIFICADO: Removido inner_size() que bloqueava a UI thread
|
// SIMPLIFICADO: Removido inner_size() que bloqueava a UI thread
|
||||||
if current_sessions.len() > 1 {
|
if current_sessions.len() > 1 {
|
||||||
// Multiplas sessoes - usar hub window
|
// 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() {
|
if app.get_webview_window(HUB_WINDOW_LABEL).is_none() {
|
||||||
// Hub nao existe - criar minimizado
|
// Hub nao existe - criar minimizado
|
||||||
let _ = open_hub_window(app);
|
let _ = open_hub_window(app);
|
||||||
|
|
@ -1017,6 +1025,11 @@ async fn process_chat_update(
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Uma sessao - abrir janela individual
|
// 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.
|
// Fallback: se nao conseguimos detectar delta, pega a sessao com mais unread e mais recente.
|
||||||
let session_to_show = if best_delta > 0 {
|
let session_to_show = if best_delta > 0 {
|
||||||
best_session
|
best_session
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue