Skip to content

fix(desktop): synchronize floating chat morph - #16

Merged
RenanMev merged 1 commit into
mainfrom
RenanMev/eider
Aug 13, 2026
Merged

fix(desktop): synchronize floating chat morph#16
RenanMev merged 1 commit into
mainfrom
RenanMev/eider

Conversation

@RenanMev

@RenanMev RenanMev commented Aug 13, 2026

Copy link
Copy Markdown
Owner

O que mudou

  • sincroniza o início do morph do chat flutuante com o resize e dois frames de pintura do WebView no viewport final;
  • adiciona um hook explícito entre o commit nativo dos bounds e a ativação da animação CSS;
  • remove a animação interna concorrente dos blocos do Quick Center.

Por quê

O SetWindowPos nativo e a transição CSS podiam ser aplicados no mesmo frame. Em uma janela transparente, esse desencontro podia revelar o desktop e fazer os componentes piscarem durante abertura ou fechamento.

Impacto

A abertura e o fechamento do Quick Center e do checklist ficam mais estáveis, sem reintroduzir redimensionamento frame a frame no Rust.

Validação

  • pnpm --filter @linvo/desktop test -- --run src/lib/floating-island-transition.test.ts src/lib/floating-quick-menu-mode.test.ts src/lib/floating-checklist-mode.test.ts src/components/floating-island-shell.test.tsx src/BarApp.test.tsx — 49 testes passaram
  • pnpm --filter @linvo/desktop typecheck — passou
  • pnpm --filter @linvo/desktop build — passou

Note

Low Risk
Desktop-only UI timing and CSS animation changes; no auth, data, or backend impact, with existing tests covering the floating transition paths.

Overview
Fixes desktop flash and flicker when the floating bar expands into Quick Center or the checklist: native SetWindowPos could complete while WebView2 still laid out the old viewport, so the CSS island morph started in the same frame as the resize and the transparent window briefly showed the desktop.

Adds waitForIslandViewportPaint, which waits for a resize that matches the target geometry, then two animation frames, with a short timeout—wired through a new onViewportReady hook on island expand flows (after bounds commit, before onResizeStart / morph activation). Quick Center drops the staggered child enter animations on .quick-center-panel-ready so they no longer fight the shell morph.

Reviewed by Cursor Bugbot for commit 8ac6edf. Configure here.

@cursor

cursor Bot commented Aug 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_7ae568f5-3c2b-4f31-ab26-d88cc9f0b94d)

@RenanMev
RenanMev marked this pull request as ready for review August 13, 2026 17:24
@RenanMev
RenanMev merged commit 0904cc4 into main Aug 13, 2026
3 checks passed
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