From 0a19462b0f6ce5afddfe4e04fd065dd1dcc3518a Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Sun, 29 Jun 2025 18:55:20 +0200 Subject: [PATCH] Add pref to hide cursor when handwriting --- src/file_editor.rs | 1 + src/handwriting/mod.rs | 11 ++++++----- src/preferences.rs | 6 ++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/file_editor.rs b/src/file_editor.rs index a776f9a..952a015 100644 --- a/src/file_editor.rs +++ b/src/file_editor.rs @@ -151,6 +151,7 @@ impl FileEditor { BufferItem::Handwriting(handwriting) => { let style = HandwritingStyle { animate: preferences.animations, + hide_cursor: preferences.hide_handwriting_cursor, ..HandwritingStyle::from_theme(ui.ctx().theme()) }; if handwriting.ui(&style, ui).changed { diff --git a/src/handwriting/mod.rs b/src/handwriting/mod.rs index af2cb43..cf822e5 100644 --- a/src/handwriting/mod.rs +++ b/src/handwriting/mod.rs @@ -56,6 +56,7 @@ pub struct HandwritingStyle { pub bg_line_stroke: Stroke, pub bg_color: Color32, pub animate: bool, + pub hide_cursor: bool, } #[derive(serde::Deserialize, serde::Serialize)] @@ -185,12 +186,11 @@ impl Handwriting { } let desired_size = Vec2::new(ui.available_width(), self.height); - let (response, painter) = ui.allocate_painter(desired_size, Sense::drag()); + let (mut response, painter) = ui.allocate_painter(desired_size, Sense::drag()); - let mut response = response - //.on_hover_cursor(CursorIcon::Crosshair) - //.on_hover_and_drag_cursor(CursorIcon::None) - ; + if style.hide_cursor { + response = response.on_hover_and_drag_cursor(egui::CursorIcon::None); + } let size = response.rect.size(); @@ -711,6 +711,7 @@ impl HandwritingStyle { bg_color, bg_line_stroke: Stroke::new(0.5, line_color), animate: true, + hide_cursor: false, } } } diff --git a/src/preferences.rs b/src/preferences.rs index ef62090..f284351 100644 --- a/src/preferences.rs +++ b/src/preferences.rs @@ -10,6 +10,9 @@ pub struct Preferences { /// Enable high-contrast theme pub high_contrast: bool, + /// Hide the cursor when handwriting + pub hide_handwriting_cursor: bool, + #[serde(skip)] has_applied_theme: bool, } @@ -20,6 +23,7 @@ impl Default for Preferences { animations: true, high_contrast: false, has_applied_theme: false, + hide_handwriting_cursor: false, } } } @@ -67,6 +71,8 @@ impl Preferences { self.apply(ui.ctx()); } + ui.toggle_value(&mut self.hide_handwriting_cursor, "Hide Handwriting Cursor"); + egui::widgets::global_theme_preference_buttons(ui); } }