fix: eraser size menu, pointed shape corners, flat tiles for slides (Issues #38, #40, #41, #28)

- #38: the eraser size button opens a menu like the pens: four presets and a slider
  (2–30 mm diameter)
- #41: shape corners stay pointed down to about 14° (miter limit 8 instead of 2)
- #40: page picker tiles are as high as the tallest page needs, so slides get flat tiles;
  the frame follows the page instead of the whole tile
- #28: the fling diagnosis also logs finger starts, mouse buttons and wheel/touchpad events

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
haraldandClaude Opus 5.5 committed 2026-10-23 09:46:49 +02:00
1 parent 69e1640dc8
commit 1e34c01ad2
6 files changed
+258 -61

No files matched your search

+12 -1
View File
@@ -2648,6 +2648,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
}
WindowEvent::MouseInput { state, button, .. } => {
if debug_fling {
eprintln!("[Nachgleiten] Maus: {button:?} {state:?}");
}
let now = start_time.elapsed().as_secs_f64();
let is_eraser_action = ui_state.active_tool == ActiveTool::Eraser
|| button == MouseButton::Right;
@@ -2856,7 +2859,10 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
}
}
WindowEvent::MouseWheel { delta, .. } => {
WindowEvent::MouseWheel { delta, phase, .. } => {
if debug_fling {
eprintln!("[Nachgleiten] Mausrad/Touchpad: {delta:?} ({phase:?}), über der Leiste: {is_pointer_in_ui}");
}
fling.stop();
if is_pointer_in_ui {
return;
@@ -2961,6 +2967,11 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
(tx, ty),
window.scale_factor() as f32,
);
if debug_fling {
eprintln!(
"[Nachgleiten] Finger aufgesetzt bei ({tx:.0}, {ty:.0}), auf der Leiste: {is_touch_in_ui}"
);
}
if is_touch_in_ui {
ui_touch_ids.insert(touch.id);
window.request_redraw();