fix: larger toolbar buttons, text field grows with the text (Issues #35, #34, #28)

- Toolbar: 2 px gaps and 3 px dividers instead of 3 px and 7 px, and the
  size estimate now matches the measured layout exactly. On a 900 px
  screen the buttons are back to 30 px despite the new view-only button.
- Text tool: a new field starts three letters wide and grows with the
  longest line up to the wrap width at the page edge.
- INK_NOTES_DEBUG_FLING now confirms it is active and logs every finger
  lift, including touches ignored because the pen is near.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
haraldandClaude Opus 5.5 committed 2026-10-21 11:44:39 +02:00
1 parent c38bfdd9b1
commit 819bc7d223
3 files changed
+56 -8

No files matched your search

+17 -1
View File
@@ -1426,6 +1426,11 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut touch_pan_last_pos = (0.0_f32, 0.0_f32);
// Nachgleiten nach schnellem Wischen mit dem Finger (Issue #28)
let mut fling = ink_notes::viewport::Fling::default();
// Diagnosis for Issue #28: log every finger lift and the swipe speed
let debug_fling = std::env::var_os("INK_NOTES_DEBUG_FLING").is_some();
if debug_fling {
eprintln!("[Nachgleiten] Diagnose aktiv – bitte mit dem Finger wischen");
}
// Stylus / Digitizer Zustand (Octotablet / Wayland Tablet Protocol)
let mut is_stylus_drawing = false;
@@ -2843,6 +2848,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
// Hardware-Palm-Rejection: Wenn der Stylus in Proximity ist oder zeichnet, Touch ignorieren
if is_stylus_drawing || is_stylus_in_proximity {
if debug_fling && touch.phase != TouchPhase::Moved {
eprintln!("[Nachgleiten] Finger ignoriert ({:?}): Stift in der Nähe", touch.phase);
}
return;
}
@@ -3058,6 +3066,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
TouchPhase::Ended | TouchPhase::Cancelled => {
active_touches.remove(&touch.id);
long_press.cancel();
if debug_fling {
eprintln!(
"[Nachgleiten] Finger abgehoben ({:?}), verschiebt: {}, weitere Finger: {}",
touch.phase,
is_touch_panning,
active_touches.len()
);
}
if active_touches.is_empty() {
is_pinch_gesturing = false;
@@ -3069,7 +3085,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
canvas.pan(dx, dy);
fling.track(Vec2::new(dx, dy), Instant::now());
let velocity = fling.release(Instant::now());
if std::env::var_os("INK_NOTES_DEBUG_FLING").is_some() {
if debug_fling {
eprintln!(
"[Nachgleiten] {:.0} px/s beim Abheben, gleitet: {}",
velocity.length(),