diff options
author | 2023-09-19 01:18:06 +0200 | |
---|---|---|
committer | 2023-09-19 01:18:06 +0200 | |
commit | 4e757a26d0c1c58001f31cf0592131cd5ad886ad (patch) | |
tree | b01589981ac76d044a62b2293a699598d26a1ab8 | |
parent | 36e867de693d4e9fc64da3d9d7745a5b1398d8a5 (diff) | |
download | iced-4e757a26d0c1c58001f31cf0592131cd5ad886ad.tar.gz iced-4e757a26d0c1c58001f31cf0592131cd5ad886ad.tar.bz2 iced-4e757a26d0c1c58001f31cf0592131cd5ad886ad.zip |
Implement `Scroll` action in `text::editor`
-rw-r--r-- | core/src/text/editor.rs | 1 | ||||
-rw-r--r-- | graphics/src/text/editor.rs | 6 | ||||
-rw-r--r-- | widget/src/text_editor.rs | 12 |
3 files changed, 19 insertions, 0 deletions
diff --git a/core/src/text/editor.rs b/core/src/text/editor.rs index 13bafc3d..e9d66ce9 100644 --- a/core/src/text/editor.rs +++ b/core/src/text/editor.rs @@ -52,6 +52,7 @@ pub enum Action { Edit(Edit), Click(Point), Drag(Point), + Scroll { lines: i32 }, } impl Action { diff --git a/graphics/src/text/editor.rs b/graphics/src/text/editor.rs index dfb91f34..a05312dc 100644 --- a/graphics/src/text/editor.rs +++ b/graphics/src/text/editor.rs @@ -446,6 +446,12 @@ impl editor::Editor for Editor { } } } + Action::Scroll { lines } => { + editor.action( + font_system.raw(), + cosmic_text::Action::Scroll { lines }, + ); + } } self.0 = Some(Arc::new(internal)); diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index 970ec031..ad12a076 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -521,6 +521,18 @@ impl Update { } _ => None, }, + mouse::Event::WheelScrolled { delta } => { + action(Action::Scroll { + lines: match delta { + mouse::ScrollDelta::Lines { y, .. } => { + -y as i32 * 4 + } + mouse::ScrollDelta::Pixels { y, .. } => { + -y.signum() as i32 + } + }, + }) + } _ => None, }, Event::Keyboard(event) => match event { |