Compare commits
4
Commits
19fc8dd3ca
...
v0.42.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b22ffa526 | ||
|
|
0d9e9aa2ea | ||
|
|
298932cb32 | ||
|
|
127bc8d730 |
No files matched your search
Generated
+1
-1
@@ -1540,7 +1540,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ink-notes"
|
||||
version = "0.42.0"
|
||||
version = "0.42.2"
|
||||
dependencies = [
|
||||
"ab_glyph",
|
||||
"android_logger",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ink-notes"
|
||||
version = "0.42.0"
|
||||
version = "0.42.2"
|
||||
edition = "2021"
|
||||
description = "Notizbuch-App für Stift, Touch und Maus unter Linux"
|
||||
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
||||
|
||||
@@ -84,6 +84,16 @@
|
||||
</branding>
|
||||
<content_rating type="oars-1.1" />
|
||||
<releases>
|
||||
<release version="0.42.2" date="2026-11-05">
|
||||
<description>
|
||||
<p>"Draw with finger" is remembered now and on by default on Android, so phones without a pen can write again after a restart or an update.</p>
|
||||
</description>
|
||||
</release>
|
||||
<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">
|
||||
<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>
|
||||
|
||||
@@ -84,6 +84,16 @@
|
||||
</branding>
|
||||
<content_rating type="oars-1.1" />
|
||||
<releases>
|
||||
<release version="0.42.2" date="2026-11-05">
|
||||
<description>
|
||||
<p>"Draw with finger" is remembered now and on by default on Android, so phones without a pen can write again after a restart or an update.</p>
|
||||
</description>
|
||||
</release>
|
||||
<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">
|
||||
<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>
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
Notebook app for pen, touch and mouse on Linux (tested on Zorin OS 18 / Ubuntu 24.04).
|
||||
|
||||
### Highlights:
|
||||
- **Writing with the finger on Android**: "Draw with finger" (☰ → Input) is now remembered and starts switched on on Android, where phones usually have no pen. Before, it was off after every start, so after an update one finger only moved the page (Issue #50)
|
||||
- **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)
|
||||
- **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)
|
||||
|
||||
+17
@@ -1471,6 +1471,7 @@ pub fn run_with(
|
||||
ui_state.stylus_buttons = ui_settings.stylus_buttons.clone();
|
||||
ui_state.set_eraser_radius_mm(ui_settings.eraser_radius_mm);
|
||||
ui_state.math.set_enabled(ui_settings.math_assist);
|
||||
ui_state.touch_draw_enabled = ui_settings.touch_draw;
|
||||
ui_state.select_pen(ui_settings.active_pen);
|
||||
ui_state.highlighter_colors = ui_settings.highlighter_colors;
|
||||
ui_state.select_highlighter_color(ui_settings.active_highlighter);
|
||||
@@ -2471,6 +2472,11 @@ pub fn run_with(
|
||||
|| is_stylus_drawing
|
||||
|| is_stylus_in_proximity
|
||||
|| 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)));
|
||||
} else if let Some(at) = [
|
||||
@@ -3710,6 +3716,9 @@ pub fn run_with(
|
||||
match touch.phase {
|
||||
TouchPhase::Started => {
|
||||
// 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();
|
||||
// Event-Isolation für Touch-Eingaben
|
||||
let is_touch_in_ui = ui::is_screen_point_in_ui(
|
||||
@@ -5348,6 +5357,14 @@ pub fn run_with(
|
||||
&mut ui_state,
|
||||
);
|
||||
}
|
||||
UiAction::SetTouchDraw(on) => {
|
||||
ui_settings.touch_draw = on;
|
||||
save_ui_settings(
|
||||
&ui_settings,
|
||||
ui_settings_path.as_deref(),
|
||||
&mut ui_state,
|
||||
);
|
||||
}
|
||||
UiAction::SetSidebarSide(side) => {
|
||||
ui_settings.sidebar_side = side;
|
||||
save_ui_settings(
|
||||
|
||||
@@ -234,6 +234,9 @@ pub struct UiSettings {
|
||||
pub storage_dir: Option<PathBuf>,
|
||||
/// Compute handwritten math after `=` (Issue #46)
|
||||
pub math_assist: bool,
|
||||
/// One finger draws instead of moving the page. On by default on Android, where phones
|
||||
/// usually have no pen (Issue #50)
|
||||
pub touch_draw: bool,
|
||||
}
|
||||
|
||||
impl Default for UiSettings {
|
||||
@@ -256,6 +259,7 @@ impl Default for UiSettings {
|
||||
eraser_radius_mm: 3.0,
|
||||
storage_dir: None,
|
||||
math_assist: false,
|
||||
touch_draw: cfg!(target_os = "android"),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -354,6 +358,7 @@ mod tests {
|
||||
eraser_radius_mm: 6.0,
|
||||
storage_dir: Some(PathBuf::from("/home/pia/Nextcloud/ink-notes")),
|
||||
math_assist: true,
|
||||
touch_draw: true,
|
||||
};
|
||||
settings.save_to(&path).unwrap();
|
||||
assert_eq!(UiSettings::load_from(&path), settings);
|
||||
|
||||
@@ -319,6 +319,8 @@ pub enum UiAction {
|
||||
SetSidebarSide(SidebarSide),
|
||||
/// Compute handwritten math after `=` on or off (Issue #46)
|
||||
SetMathAssist(bool),
|
||||
/// One finger draws or moves the page (saved, Issue #50)
|
||||
SetTouchDraw(bool),
|
||||
/// Sprache der Oberfläche; `None` = Sprache des Systems
|
||||
SetLanguage(Option<crate::i18n::Language>),
|
||||
/// Papierfarbe der Anzeige und Aufhellen dunkler Tinte (wird gespeichert)
|
||||
@@ -4613,13 +4615,18 @@ pub fn render_ui(
|
||||
});
|
||||
|
||||
section(ui, t!("EINGABE"));
|
||||
ui.checkbox(
|
||||
&mut state.touch_draw_enabled,
|
||||
t!("Mit dem Finger zeichnen"),
|
||||
)
|
||||
.on_hover_text(
|
||||
t!("Aus: ein Finger verschiebt, zwei Finger zoomen (empfohlen mit Stift).\nAn: ein Finger zeichnet."),
|
||||
);
|
||||
if ui
|
||||
.checkbox(
|
||||
&mut state.touch_draw_enabled,
|
||||
t!("Mit dem Finger zeichnen"),
|
||||
)
|
||||
.on_hover_text(
|
||||
t!("Aus: ein Finger verschiebt, zwei Finger zoomen (empfohlen mit Stift).\nAn: ein Finger zeichnet."),
|
||||
)
|
||||
.changed()
|
||||
{
|
||||
actions.push(UiAction::SetTouchDraw(state.touch_draw_enabled));
|
||||
}
|
||||
let mut math = state.math.enabled;
|
||||
if ui
|
||||
.checkbox(&mut math, t!("Formeln nach „=“ ausrechnen"))
|
||||
|
||||
Reference in new issue
Block a user