Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd702524ca | ||
|
|
20792ed34f |
Generated
+1
-1
@@ -1393,7 +1393,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ink-notes"
|
name = "ink-notes"
|
||||||
version = "0.24.0"
|
version = "0.25.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ab_glyph",
|
"ab_glyph",
|
||||||
"arboard",
|
"arboard",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "ink-notes"
|
name = "ink-notes"
|
||||||
version = "0.24.0"
|
version = "0.25.0"
|
||||||
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"
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
Notizbuch-App für Stift, Touch und Maus unter Linux (getestet mit Zorin OS 18 / Ubuntu 24.04).
|
Notizbuch-App für Stift, Touch und Maus unter Linux (getestet mit Zorin OS 18 / Ubuntu 24.04).
|
||||||
|
|
||||||
### Highlights:
|
### Highlights:
|
||||||
|
- **Englische Oberfläche / English interface**: ink-notes folgt der Systemsprache (Deutsch oder Englisch); umstellen im ☰-Menü unter „Sprache / Language“
|
||||||
|
- **Halten zum Einrasten**: verträgt jetzt das leichte Zittern eines ruhenden Stifts, damit Formen auch im normalen Stift-Modus einrasten
|
||||||
- **Achsenkreuz aus zwei Strichen**: Eine waagerechte und eine senkrechte Gerade über Kreuz zeichnen – die zweite mit Halten oder dem Formen-Werkzeug – und beide werden zum Achsenkreuz mit Pfeilspitzen an allen vier Enden; Rückgängig stellt die erste Gerade wieder her
|
- **Achsenkreuz aus zwei Strichen**: Eine waagerechte und eine senkrechte Gerade über Kreuz zeichnen – die zweite mit Halten oder dem Formen-Werkzeug – und beide werden zum Achsenkreuz mit Pfeilspitzen an allen vier Enden; Rückgängig stellt die erste Gerade wieder her
|
||||||
- **Bildschirmtastatur**: Unter GNOME/Zorin (Wayland) erscheint die Bildschirmtastatur jetzt beim Antippen eines Namensfelds – mit Finger oder Stift; Tippen und Rücktaste funktionieren. Außerdem geht der erste Fingertipp nach Mausbenutzung nicht mehr verloren
|
- **Bildschirmtastatur**: Unter GNOME/Zorin (Wayland) erscheint die Bildschirmtastatur jetzt beim Antippen eines Namensfelds – mit Finger oder Stift; Tippen und Rücktaste funktionieren. Außerdem geht der erste Fingertipp nach Mausbenutzung nicht mehr verloren
|
||||||
- **App-Symbol**: Das Fenster meldet sich als eu.pansi.ink-notes – Dock und Taskleiste zeigen das ink-notes-Symbol statt eines allgemeinen Symbols (unter X11 auch als Fenstersymbol)
|
- **App-Symbol**: Das Fenster meldet sich als eu.pansi.ink-notes – Dock und Taskleiste zeigen das ink-notes-Symbol statt eines allgemeinen Symbols (unter X11 auch als Fenstersymbol)
|
||||||
|
|||||||
+48
-1
@@ -596,6 +596,31 @@ fn insert_image_on_page(
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Trifft ein Finger auf `screen` die Auswahl (Rahmen, Griffe) oder ein Objekt? Dann wählt bzw.
|
||||||
|
/// verschiebt er, sonst verschiebt er das Blatt.
|
||||||
|
fn finger_grabs_selection(
|
||||||
|
screen: (f32, f32),
|
||||||
|
canvas: &CanvasState,
|
||||||
|
page: &ink_notes::document::Page,
|
||||||
|
pixels_per_point: f32,
|
||||||
|
selection_state: &SelectionState,
|
||||||
|
) -> bool {
|
||||||
|
let on_selection = !selection_state.is_empty()
|
||||||
|
&& !matches!(
|
||||||
|
selection_state.hit_test_handles(
|
||||||
|
page,
|
||||||
|
canvas,
|
||||||
|
Vec2::new(screen.0, screen.1),
|
||||||
|
pixels_per_point
|
||||||
|
),
|
||||||
|
SelectionHandleHit::None
|
||||||
|
);
|
||||||
|
on_selection
|
||||||
|
|| canvas
|
||||||
|
.screen_to_page(screen.0, screen.1)
|
||||||
|
.is_some_and(|p| page.find_stroke_at(p, 25.0).is_some())
|
||||||
|
}
|
||||||
|
|
||||||
/// Auswahlwerkzeug: Druck auf `screen` (physische Pixel) greift einen Griff, die Auswahl
|
/// Auswahlwerkzeug: Druck auf `screen` (physische Pixel) greift einen Griff, die Auswahl
|
||||||
/// oder das Objekt darunter oder beginnt einen Auswahlrahmen. Mit `shift` wird die Auswahl
|
/// oder das Objekt darunter oder beginnt einen Auswahlrahmen. Mit `shift` wird die Auswahl
|
||||||
/// erweitert. `true`, wenn etwas begonnen wurde.
|
/// erweitert. `true`, wenn etwas begonnen wurde.
|
||||||
@@ -2820,7 +2845,29 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
cursor_screen_pos = (tx, ty);
|
cursor_screen_pos = (tx, ty);
|
||||||
current_pressure = pressure;
|
current_pressure = pressure;
|
||||||
|
|
||||||
if !ui_state.touch_draw_enabled {
|
// Ohne Finger-Zeichnen verschiebt ein Finger das Blatt – außer bei
|
||||||
|
// Werkzeugen, die nicht zeichnen: Text und Platz schaffen nehmen den
|
||||||
|
// Finger immer, Auswählen, wenn er ein Objekt oder die Auswahl trifft
|
||||||
|
// (Issue #26)
|
||||||
|
let finger_uses_tool = match ui_state.active_tool {
|
||||||
|
ActiveTool::Text | ActiveTool::Space => true,
|
||||||
|
ActiveTool::Select => {
|
||||||
|
focus_page_at!((tx, ty));
|
||||||
|
finger_grabs_selection(
|
||||||
|
(tx, ty),
|
||||||
|
&canvas,
|
||||||
|
notebook.current_page(),
|
||||||
|
egui_ctx.pixels_per_point(),
|
||||||
|
&selection_state,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
_ => false,
|
||||||
|
};
|
||||||
|
if finger_uses_tool {
|
||||||
|
// Halten soll hier kein Kontextmenü öffnen
|
||||||
|
long_press.cancel();
|
||||||
|
}
|
||||||
|
if !ui_state.touch_draw_enabled && !finger_uses_tool {
|
||||||
// Standard: 1 Finger scrollt / verschiebt den Canvas (Pan)
|
// Standard: 1 Finger scrollt / verschiebt den Canvas (Pan)
|
||||||
is_touch_panning = true;
|
is_touch_panning = true;
|
||||||
touch_pan_last_pos = (tx, ty);
|
touch_pan_last_pos = (tx, ty);
|
||||||
|
|||||||
Reference in New Issue
Block a user