fix: Surface pen pressure, zoom glitches, sticky notes, selection UX
All checks were successful
CI / Windows build (push) Successful in 8m19s

Wire Win32 pressure into Dart, tighten pinch guards, use geometric shape
strokes, expand the ink palette, and replace scratch-link split view with
an on-page sticky that shares the sidecar repo.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-05 19:52:15 +08:00
parent 198da00ecd
commit 4a6fe7d05e
16 changed files with 621 additions and 171 deletions

View File

@@ -22,14 +22,14 @@ void main() {
}
});
test('fountain pen — Pow2 (p²), thinning 0.9, taper on, solid', () {
test('fountain pen — Pow2 (p²), moderate thinning, no taper, solid', () {
final b = brushProfileFor(BrushKind.fountainPen);
expect(b.pressureGamma, 2.0); // rnote Pow2 / quadratic
expect(b.pfThinning, 0.9);
expect(b.pfStreamline, 0.45);
expect(b.pfSmoothing, 0.55);
expect(b.pfThinning, 0.65);
expect(b.pfStreamline, 0.4);
expect(b.pfSmoothing, 0.5);
expect(b.simulatePressure, isFalse);
expect(b.taper, isTrue);
expect(b.taper, isFalse);
expect(b.capStart, isTrue);
expect(b.capEnd, isTrue);
expect(b.opacity, 1.0);
@@ -127,8 +127,9 @@ void main() {
isNot(brushProfileFor(BrushKind.ballpoint).pressureGamma));
});
test('caps/taper differ (fountain tapers, highlighter is square)', () {
expect(brushProfileFor(BrushKind.fountainPen).taper, isTrue);
test('caps/taper: highlighter is square; fountain/ballpoint round no taper',
() {
expect(brushProfileFor(BrushKind.fountainPen).taper, isFalse);
expect(brushProfileFor(BrushKind.highlighter).capStart, isFalse);
expect(brushProfileFor(BrushKind.ballpoint).taper, isFalse);
});