Skip to content

fix(ui): popup não cresce mais a cada abertura - #1

Merged
ruscher merged 1 commit into
mainfrom
fix/popup-size-growth
Oct 11, 2026
Merged

ruscher merged 1 commit into
mainfrom
fix/popup-size-growth

Conversation

@ruscher

@ruscher ruscher commented Oct 11, 2026

Copy link
Copy Markdown
Member

Problema

Ao abrir o ChatAI pelo ícone do painel, o popup ficava um pouco maior a cada vez, sem o usuário redimensionar, até atingir o limite de 95% da tela. Em painel horizontal crescia a altura; em painel vertical, a largura. Acontecia no Wayland e no X11.

Causa

O main.qml salvava o tamanho medido (saveSizeTimer → dialogWidth/dialogHeight) e o reaplicava em Layout.preferredWidth/preferredHeight. O wrapper de popups do Plasma (CompactApplet.qml) soma 1 px ao tamanho pedido, por causa da linha separadora junto ao painel, e nem sempre desconta esse pixel do applet. Cada gravação saía 1 px maior: +1 px a cada 500 ms com o popup aberto.

O problema aparecia na sessão em que o Plasma ainda não tinha um tamanho salvo (widget recém-adicionado ou primeira sessão). Depois disso o Plasma guardava o tamanho já inflado. Detalhes e medições em docs/POPUP_SIZE_BUGFIX.md.

Correção

  • O ChatAI deixa de guardar o tamanho por conta própria. O tamanho preferido agora é a constante padrão de um popup nunca redimensionado.
  • Lembrar o redimensionamento do usuário fica com o AppletPopup do Plasma 6, que já faz isso: salva ao fechar, restaura ao iniciar e limita a 95% da tela.
  • dialogWidth/dialogHeight continuam no schema, porque o Migration.js os usa para reconhecer instalações antigas.
  • O ChatAI-Plasmoid.plasmoid commitado foi refeito: ele ainda tinha o main.qml antigo.
  • Novos: tests/popup-size-regression.sh (teste numa sessão Plasma real) e documentação em docs/.

Testes (Plasma 6.7.4, Qt 6.11.2)

Antes Depois
Wayland, 30 aberturas 701 → 788 px 703 fixo
Wayland, 100 aberturas — 816×703 em todas
X11, painel inferior +24 px em 6 aberturas 20 × 816×703
X11, painel vertical largura +20 px em 5 aberturas 10 × 817×702
Escalas de 125 / 150 / 200% — estável (no teto de 95% quando não cabe)

Também testado com mouse e teclado reais no X11:

  • redimensionar arrastando as bordas, com o tamanho preservado nas reaberturas e depois de reiniciar o plasmashell
  • cabeçalho com ocultação automática
  • Ctrl+F e F11
  • painel de configurações
  • fechar e recriar o WebView

O tamanho não mudou em nenhum desses casos. O qmllint não mostra avisos novos.

Não testado: vários monitores (só havia uma tela) e escala definida nas Configurações do Sistema (exige novo login).

Observação: popups que já cresceram mantêm o tamanho salvo. Basta redimensionar uma vez.

🤖 Generated with Claude Code

The popup size was persisted by writing the measured size of the full
representation back into its Layout.preferredWidth/Height. On a panel,
Plasma's popup wrapper (CompactApplet.qml) adds a 1 px separator to that
hint without always taking it back from the applet, so every save was
1 px larger: the popup grew 1 px every 500 ms while open, until Plasma's
95% screen limit. Height grew on horizontal panels, width on vertical
ones, on Wayland and X11.

Plasma 6's AppletPopup already remembers the size the user picks
(popupWidth/popupHeight, saved on hide, restored on startup), so drop
ChatAI's own persistence: the preferred size is now the constant default
for a popup that was never resized. dialogWidth/dialogHeight stay in the
schema for Migration.js.

Also rebuild the committed .plasmoid, which still had the old main.qml,
and add a live regression test plus notes in docs/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ruscher
ruscher merged commit 11f2a38 into main Oct 11, 2026
2 checks passed
@ruscher
ruscher deleted the fix/popup-size-growth branch October 11, 2026 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant