Compare commits

..
2 Commits
Author SHA1 Message Date
haraldandClaude Opus 5.5 298932cb32 chore(release): bump version to 0.42.1
Build & Publish Release / Android APK (push) Successful in 10m47s
Build & Publish Release / Build Packages & Publish to Gitea (push) Successful in 31m46s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 09:09:05 +01:00
haraldandClaude Opus 5.5 127bc8d730 fix(input): keep waking while a finger is down so the lift arrives on time (Issue #28)
On Wayland the touch-up event could already sit in winit's queue, read
from the socket by the graphics driver, without waking the event loop.
It then only arrived together with the next touch, which stopped the
glide right away: Pia's log showed every lift handled 200-1000 ms late
while the compositor timestamps were 10 ms apart, and her screencast
shows the page stop dead after each swipe. The loop now wakes every
8 ms while a finger is on the screen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:42:34 +01:00
6 changed files with 21 additions and 2 deletions

No files matched your search

Generated
+1 -1
View File
@@ -1540,7 +1540,7 @@ dependencies = [
[[package]] [[package]]
name = "ink-notes" name = "ink-notes"
version = "0.42.0" version = "0.42.1"
dependencies = [ dependencies = [
"ab_glyph", "ab_glyph",
"android_logger", "android_logger",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "ink-notes" name = "ink-notes"
version = "0.42.0" version = "0.42.1"
edition = "2021" edition = "2021"
description = "Notizbuch-App für Stift, Touch und Maus unter Linux" description = "Notizbuch-App für Stift, Touch und Maus unter Linux"
repository = "https://gitea.pansi.eu/harald/ink-notes" repository = "https://gitea.pansi.eu/harald/ink-notes"
@@ -84,6 +84,11 @@
</branding> </branding>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release version="0.42.1" date="2026-11-02">
<description>
<p>Swiping with a finger glides on again on Wayland: lifting the finger no longer arrives late and stops the page right away.</p>
</description>
</release>
<release version="0.42.0" date="2026-10-28"> <release version="0.42.0" date="2026-10-28">
<description> <description>
<p>Built-in Nextcloud sync: sign in through the browser and the notebooks are synced with your Nextcloud, also private servers and without a sync client.</p> <p>Built-in Nextcloud sync: sign in through the browser and the notebooks are synced with your Nextcloud, also private servers and without a sync client.</p>
+5
View File
@@ -84,6 +84,11 @@
</branding> </branding>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release version="0.42.1" date="2026-11-02">
<description>
<p>Swiping with a finger glides on again on Wayland: lifting the finger no longer arrives late and stops the page right away.</p>
</description>
</release>
<release version="0.42.0" date="2026-10-28"> <release version="0.42.0" date="2026-10-28">
<description> <description>
<p>Built-in Nextcloud sync: sign in through the browser and the notebooks are synced with your Nextcloud, also private servers and without a sync client.</p> <p>Built-in Nextcloud sync: sign in through the browser and the notebooks are synced with your Nextcloud, also private servers and without a sync client.</p>
+1
View File
@@ -3,6 +3,7 @@
Notebook app for pen, touch and mouse on Linux (tested on Zorin OS 18 / Ubuntu 24.04). Notebook app for pen, touch and mouse on Linux (tested on Zorin OS 18 / Ubuntu 24.04).
### Highlights: ### Highlights:
- **Momentum scrolling with the finger fixed**: On Wayland, lifting the finger after a swipe could reach the app only together with the next touch, so the page stopped dead instead of gliding on. The app now keeps listening while a finger is on the screen, so the page glides after a quick swipe and slows down gradually (Issue #28)
- **Nextcloud built in**: ☰ → Storage location → Nextcloud syncs the notebooks directly with your Nextcloud – also on Android and without a sync client. Enter the server address (private servers in a subfolder, with their own port or a self-signed certificate work too), sign in in the browser; the app gets an app password of its own that "Disconnect" revokes again. Syncing runs every 30 seconds and shortly after saving and keeps working offline; a page changed on two devices is kept twice, deleted notebooks and pages go into the trash on both sides, changes arriving for the open notebook wait until it is saved (Issue #49) - **Nextcloud built in**: ☰ → Storage location → Nextcloud syncs the notebooks directly with your Nextcloud – also on Android and without a sync client. Enter the server address (private servers in a subfolder, with their own port or a self-signed certificate work too), sign in in the browser; the app gets an app password of its own that "Disconnect" revokes again. Syncing runs every 30 seconds and shortly after saving and keeps working offline; a page changed on two devices is kept twice, deleted notebooks and pages go into the trash on both sides, changes arriving for the open notebook wait until it is saved (Issue #49)
- **Security update**: rustls 0.23.46 (TLS library for update checks and the Nextcloud sync) fixes a way for key material to end up in logs (Issue #51); ink-notes itself was not affected, as it doesn't keep TLS sessions - **Security update**: rustls 0.23.46 (TLS library for update checks and the Nextcloud sync) fixes a way for key material to end up in logs (Issue #51); ink-notes itself was not affected, as it doesn't keep TLS sessions
- **Android toolbar fix**: The toolbar and menus stay clear of the status bar, the navigation bar and the camera cutout, so the topmost button (📚 notebooks) can be tapped again; in landscape the page is centered between the side bars. Nothing changes on Linux and Windows (Issue #50) - **Android toolbar fix**: The toolbar and menus stay clear of the status bar, the navigation bar and the camera cutout, so the topmost button (📚 notebooks) can be tapped again; in landscape the page is centered between the side bars. Nothing changes on Linux and Windows (Issue #50)
+8
View File
@@ -2471,6 +2471,11 @@ pub fn run_with(
|| is_stylus_drawing || is_stylus_drawing
|| is_stylus_in_proximity || is_stylus_in_proximity
|| fling.is_active() || fling.is_active()
// While a finger is down: on Wayland, the lift can already sit in winit's
// queue (read from the socket by the graphics driver) without waking the
// loop, and then only arrives with the next touch, which stops the glide
// right away (Issue #28)
|| !active_touches.is_empty()
{ {
target.set_control_flow(ControlFlow::wait_duration(Duration::from_millis(8))); target.set_control_flow(ControlFlow::wait_duration(Duration::from_millis(8)));
} else if let Some(at) = [ } else if let Some(at) = [
@@ -3710,6 +3715,9 @@ pub fn run_with(
match touch.phase { match touch.phase {
TouchPhase::Started => { TouchPhase::Started => {
// Jede neue Berührung hält ein gleitendes Blatt an // Jede neue Berührung hält ein gleitendes Blatt an
if debug_fling && fling.is_active() {
eprintln!("[Nachgleiten] Neuer Finger hält das Gleiten an");
}
fling.stop(); fling.stop();
// Event-Isolation für Touch-Eingaben // Event-Isolation für Touch-Eingaben
let is_touch_in_ui = ui::is_screen_point_in_ui( let is_touch_in_ui = ui::is_screen_point_in_ui(