- Pen vs. finger (#44): the patched winit hands Android pointers with
tool type stylus/eraser to the app separately (take_pen_samples, with
hover and button state) instead of as touch events. src/pen.rs turns
them, like octotablet's events on the desktop, into one PenInput
stream, so pen buttons, the eraser end and palm rejection work the
same everywhere. Hover exit right before touch-down does not count as
leaving; a pen without hover leaves 150 ms after lifting.
- Soft keyboard: shown via AndroidApp::show_soft_input when a text field
gets focus, hidden when it loses it. The patched winit now fills
KeyEvent::text, so typed characters reach egui.
- Exports (PDF, PNG, SVG) are written to the app folder and copied to
Download/ink-notes through the MediaStore (Android 10+, via JNI).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pia's log shows the lift arriving 200-300 ms after the last move on every
swipe, so the release looked like a resting finger and nothing glided. The
vendored winit now keeps the Wayland timestamp of each touch event
(take_touch_time), and the fling measures with those times instead of when
the app got around to handling the events. The diagnostics log both gaps and
any event handling that blocks the app for more than 40 ms.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- #41: snapped triangles, rectangles and polygons keep the full stroke width on every
side; corners are mitered, sharp ones bevelled (the old corner offset thinned the edges)
- #38: four eraser sizes, cycled by a button below the eraser modes and remembered in
ui.json
- #37: a selection made with the pen's select button can be moved with the bare pen
- #39: fingers resting on the screen when the pen comes near, or touching it while the pen
is near (and 0.7 s after), are ignored until lifted; the vendored winit ignores touches
on the title bar meanwhile
- #40: the page picker shows imported PDF pages, rendered small in the background
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
winit 0.29 draws the title bar itself on Wayland but only handles the
mouse there. A vendored copy of winit 0.29.15 (vendor/winit, used via
[patch.crates-io]) passes touches on the decorations to the frame like a
left click, so close, minimize and maximize work with a finger and
dragging the title bar moves the window.
CI no longer sets a global -D warnings, which would also apply to the
vendored crate; clippy still runs with -D warnings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>