Feat: device pixel alignment #164

Merged
zach merged 21 commits from feat/device-pixel-alignment into main 2026-11-03 16:09:37 +01:00
Owner

What & why

Attempts to rework object placements to snap them to device pixel space to improve sharpness at fractional scaling.

New component

SnapLayout now acting as an almost-drop-in replacement for Qt's ColumnLayout and RowLayout It positions children properly in device pixel space.

New helpers

ZUtils has three new helpers:

  • snap(v, item)
  • snapCeil(v, item)
  • snapFloor(v, item)

Snaps v to item's device pixel space.

Related issue

No response

Type

New feature

Tested

  • Build succeeds
  • Existing tests pass
  • Manually verified

Breaking changes?

No response

Checklist

  • CI passes (format, lint, typecheck)
  • Clean commits
  • No new warnings
  • Docs updated if needed
### What & why Attempts to rework object placements to snap them to device pixel space to improve sharpness at fractional scaling. ### New component `SnapLayout` now acting as an almost-drop-in replacement for Qt's `ColumnLayout` and `RowLayout` It positions children properly in device pixel space. ### New helpers `ZUtils` has three new helpers: - `snap(v, item)` - `snapCeil(v, item)` - `snapFloor(v, item)` Snaps `v` to `item`'s device pixel space. ### Related issue _No response_ ### Type New feature ### Tested - [x] Build succeeds - [ ] Existing tests pass - [x] Manually verified ### Breaking changes? _No response_ ### Checklist - [ ] CI passes (format, lint, typecheck) - [x] Clean commits - [ ] No new warnings - [x] Docs updated if needed
zach added 14 commits 2026-10-29 20:07:47 +01:00
zach added 1 commit 2026-10-29 20:11:37 +01:00
Merge branch 'main' into feat/device-pixel-alignment
C++ / fmt (pull_request) Failing after 6s
C++ / build (pull_request) Failing after 10s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 7s
JS/TS / lint (pull_request) Successful in 9s
Python / static (pull_request) Successful in 26s
Rust / build (pull_request) Successful in 54s
Python / verify (pull_request) Failing after 1m29s
Rust / fmt (pull_request) Successful in 36s
Rust / clippy (pull_request) Successful in 50s
78a9577209
zach added 1 commit 2026-10-30 01:52:38 +01:00
fix: blobs now allow to be drawn in device pixels to stay sharp
C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 10s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 9s
JS/TS / lint (pull_request) Successful in 25s
Python / static (pull_request) Successful in 34s
Rust / build (pull_request) Successful in 51s
Python / verify (pull_request) Failing after 1m25s
Rust / fmt (pull_request) Successful in 39s
Rust / clippy (pull_request) Successful in 59s
c5608dc9b9
zach added 1 commit 2026-10-30 14:16:24 +01:00
feat: drawing popout now clips strokes again + add redo + add undo and redo keybinds
C++ / fmt (pull_request) Failing after 6s
C++ / build (pull_request) Failing after 12s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 9s
JS/TS / lint (pull_request) Successful in 9s
Python / static (pull_request) Successful in 28s
Python / verify (pull_request) Failing after 1m41s
Rust / build (pull_request) Successful in 1m15s
Rust / fmt (pull_request) Successful in 42s
Rust / clippy (pull_request) Successful in 1m6s
566b71d386
zach added 1 commit 2026-11-01 01:57:32 +01:00
Merge branch 'main' into feat/device-pixel-alignment
C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 3m41s
C++ / clang-tidy (pull_request) Failing after 3m39s
JS/TS / fmt (pull_request) Successful in 13s
JS/TS / lint (pull_request) Successful in 11s
Python / static (pull_request) Successful in 34s
Rust / build (pull_request) Successful in 49s
Python / verify (pull_request) Failing after 1m29s
Rust / fmt (pull_request) Successful in 42s
Rust / clippy (pull_request) Successful in 1m2s
017d7073d2
zach changed title from WIP: Feat/device pixel alignment to Feat: device pixel alignment 2026-11-01 01:58:53 +01:00
zach added 1 commit 2026-11-01 12:51:37 +01:00
Merge branch 'main' into feat/device-pixel-alignment
C++ / fmt (pull_request) Failing after 6s
C++ / build (pull_request) Failing after 3m19s
C++ / clang-tidy (pull_request) Failing after 3m17s
JS/TS / fmt (pull_request) Successful in 10s
JS/TS / lint (pull_request) Successful in 32s
Python / static (pull_request) Successful in 28s
Rust / build (pull_request) Successful in 49s
Python / verify (pull_request) Failing after 1m20s
Rust / fmt (pull_request) Successful in 33s
Rust / clippy (pull_request) Successful in 57s
789305286a
zach added 1 commit 2026-11-02 19:01:09 +01:00
feat: better notification storage and image caching + blobs
C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 11s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 12s
JS/TS / lint (pull_request) Successful in 10s
Python / static (pull_request) Failing after 27s
Rust / build (pull_request) Successful in 54s
Python / verify (pull_request) Failing after 1m26s
Rust / fmt (pull_request) Successful in 46s
Rust / clippy (pull_request) Successful in 1m6s
11e7aac195
zach added 1 commit 2026-11-03 15:57:21 +01:00
fix: notification toast height no longer gets cut off with many notifications
C++ / fmt (pull_request) Failing after 8s
C++ / clang-tidy (pull_request) Failing after 10s
C++ / build (pull_request) Failing after 22s
JS/TS / fmt (pull_request) Successful in 10s
JS/TS / lint (pull_request) Successful in 10s
Python / static (pull_request) Failing after 28s
Rust / build (pull_request) Successful in 54s
Python / verify (pull_request) Failing after 1m22s
Rust / fmt (pull_request) Successful in 32s
Rust / clippy (pull_request) Successful in 1m6s
20dc53238d
zach merged commit 1250a6b554 into main 2026-11-03 16:09:37 +01:00
Sign in to join this conversation.