Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8a7675f8d | ||
|
|
0992b9bc0e |
No files matched your search
Generated
+1
-1
@@ -1393,7 +1393,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ink-notes"
|
||||
version = "0.34.0"
|
||||
version = "0.34.1"
|
||||
dependencies = [
|
||||
"ab_glyph",
|
||||
"arboard",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ink-notes"
|
||||
version = "0.34.0"
|
||||
version = "0.34.1"
|
||||
edition = "2021"
|
||||
description = "Notizbuch-App für Stift, Touch und Maus unter Linux"
|
||||
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
||||
|
||||
@@ -84,6 +84,11 @@
|
||||
</branding>
|
||||
<content_rating type="oars-1.1" />
|
||||
<releases>
|
||||
<release version="0.34.1" date="2026-10-25">
|
||||
<description>
|
||||
<p>A finger swipe is measured reliably again for gliding, also when the view touches the edge of the notebook. The fling diagnostics log more details.</p>
|
||||
</description>
|
||||
</release>
|
||||
<release version="0.34.0" date="2026-10-23">
|
||||
<description>
|
||||
<p>The eraser size is set in a menu like the pens, with presets and a slider. Corners of snapped shapes stay pointed. Slides get flat tiles in the page overview.</p>
|
||||
|
||||
@@ -84,6 +84,11 @@
|
||||
</branding>
|
||||
<content_rating type="oars-1.1" />
|
||||
<releases>
|
||||
<release version="0.34.1" date="2026-10-25">
|
||||
<description>
|
||||
<p>A finger swipe is measured reliably again for gliding, also when the view touches the edge of the notebook. The fling diagnostics log more details.</p>
|
||||
</description>
|
||||
</release>
|
||||
<release version="0.34.0" date="2026-10-23">
|
||||
<description>
|
||||
<p>The eraser size is set in a menu like the pens, with presets and a slider. Corners of snapped shapes stay pointed. Slides get flat tiles in the page overview.</p>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
Notebook app for pen, touch and mouse on Linux (tested on Zorin OS 18 / Ubuntu 24.04).
|
||||
|
||||
### Highlights:
|
||||
- **Fling fix**: A finger swipe is no longer lost when the view touches the edge of the notebook, so the page glides on after a fast swipe; the fling diagnostics (`INK_NOTES_DEBUG_FLING=1`) log moves, distance and timing
|
||||
- **Feedback round**: The eraser size is set in a menu like the pens (four presets and a slider); corners of snapped triangles and polygons stay pointed; slides (landscape PDFs) get flat tiles in the page overview without an empty strip
|
||||
- **Palm rejection & more feedback**: A hand resting on the screen while the pen is near is ignored (also on the title bar, no more accidental paste menu or window moving); the eraser has four sizes (button below the eraser modes, remembered); the page overview shows imported PDF pages; snapped triangles, rectangles and polygons have the same width on every side; a selection made with the pen's select button can be moved with the bare pen
|
||||
- **Feedback round**: The endless canvas starts at the top left and only grows to the right and down; new text fields start short and grow with the text; toolbar buttons are larger again on small screens; on Wayland the title bar buttons (close, minimize, maximize) and moving the window work with a finger
|
||||
|
||||
+14
-5
@@ -1428,6 +1428,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Langes Drücken mit einem Finger öffnet das Kontextmenü
|
||||
let mut long_press = ui::LongPress::default();
|
||||
let mut touch_pan_last_pos = (0.0_f32, 0.0_f32);
|
||||
// Diagnostics for the fling: moves, path length (px) and time of the last move of this swipe
|
||||
let mut touch_pan_trace: (u32, f32, Option<Instant>) = (0, 0.0, None);
|
||||
// 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
|
||||
@@ -3047,6 +3049,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Standard: 1 Finger scrollt / verschiebt den Canvas (Pan)
|
||||
is_touch_panning = true;
|
||||
touch_pan_last_pos = (tx, ty);
|
||||
touch_pan_trace = (0, 0.0, None);
|
||||
} else {
|
||||
// Modus Finger-Zeichnen aktiv
|
||||
focus_page_at!((tx, ty));
|
||||
@@ -3123,6 +3126,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
touch_pan_last_pos = (tx, ty);
|
||||
canvas.pan(dx, dy);
|
||||
fling.track(Vec2::new(dx, dy), Instant::now());
|
||||
touch_pan_trace.0 += 1;
|
||||
touch_pan_trace.1 += Vec2::new(dx, dy).length();
|
||||
touch_pan_trace.2 = Some(Instant::now());
|
||||
window.request_redraw();
|
||||
} else if is_touch_drawing {
|
||||
current_pressure = pressure;
|
||||
@@ -3184,10 +3190,12 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
fling.track(Vec2::new(dx, dy), Instant::now());
|
||||
let velocity = fling.release(Instant::now());
|
||||
if debug_fling {
|
||||
let (moves, path, last_move) = touch_pan_trace;
|
||||
eprintln!(
|
||||
"[Nachgleiten] {:.0} px/s beim Abheben, gleitet: {}",
|
||||
"[Nachgleiten] {:.0} px/s beim Abheben, gleitet: {} ({moves} Bewegungen, {path:.0} px, letzte vor {} ms)",
|
||||
velocity.length(),
|
||||
fling.is_active()
|
||||
fling.is_active(),
|
||||
last_move.map_or(-1, |t| t.elapsed().as_millis() as i64)
|
||||
);
|
||||
}
|
||||
window.request_redraw();
|
||||
@@ -3255,13 +3263,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// schreibt, bleibt dort, bis wieder gescrollt wird (Undo betrifft sie).
|
||||
canvas.set_fit_box(notebook.fit_box());
|
||||
if notebook.is_endless() {
|
||||
if canvas.clamp_endless(notebook.current_page().endless_scroll_limit()) {
|
||||
if canvas.clamp_endless(notebook.current_page().endless_scroll_limit()) && fling.is_active() {
|
||||
fling.stop();
|
||||
}
|
||||
} else if ui_state.continuous_scroll {
|
||||
let stack = notebook.page_stack();
|
||||
if canvas.clamp_scroll(&stack) {
|
||||
// Am Anfang oder Ende des Notizbuchs angekommen
|
||||
if canvas.clamp_scroll(&stack) && fling.is_active() {
|
||||
// Am Anfang oder Ende des Notizbuchs angekommen (only a glide stops
|
||||
// here; a finger still on the screen keeps its measured swipe)
|
||||
fling.stop();
|
||||
}
|
||||
// Unabhängig von der Bezugsseite: Lage bezogen auf die erste Seite
|
||||
|
||||
Reference in new issue
Block a user