Skip to content

fix(ui): jank found by driving the app: sidebar slide, zoom, page switches, grid selection - #1813

Merged
ZhuchkaTriplesix merged 2 commits into
devfrom
fix/ui-motion-jank
Oct 25, 2026
Merged

ZhuchkaTriplesix merged 2 commits into
devfrom
fix/ui-motion-jank

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Found by running a debug build and capturing frame bursts while driving it (flutter-toolkit over the VM service, grim for frames).

  • Sidebar slide (Ctrl+B, the toggle, a released drag). While it animated, the workspace was laid out at the full window width and pinned left: when closing, its right side (cards, path, Overview / SQL) ran past the window and labels re-wrapped; when opening, it was cut on the right and snapped narrower at the end. Now it is laid out once at the width it ends with and pinned right, so it stands still and the sidebar covers or uncovers its left side (main_content_split.dart).
  • Interface scale. Each animation frame laid the app out in a new window size, so text re-wrapped and cards moved on every frame. Now the layout is made once for the zoom the change ends at and only the painting animates, like a browser zoom (ui_zoom.dart). Test added.
  • Page switches (Overview ↔ SQL in every engine, workspace objects, result tabs, the empty screen, the welcome tour). They cross-faded, so the old page showed through the new one, text over text. Now they fade through: the old page is gone by the half-way point and the new one starts there (QueryaCrossFadeStack, QueryaFadeSlide, the tour).
  • Grid selection. The selection outline was part of the cell's BoxDecoration, which adds the border to the padding, so the text of a selected cell moved by 1.5 px on every click and drag. The outline is a foreground decoration now; every cell has the same grid lines. Test added.
  • Small texts. The tour card said "F5 + or + Ctrl+Enter" (one chord); it shows two badges with "or" between. The quick-start row said "4 visual steps"; the tour has 6.

Checked by eye in the running app after each change (hot reload): frames of the sidebar slide, a slowed-down zoom from 150 % to 100 %, the Overview → SQL switch, and a selected range in the grid; the grid context menu opens under the pointer at 150 %. Not run locally (analyzer clean), CI will.

@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit 092a475 into dev Oct 25, 2026
16 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