summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-09-13 16:31:56 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-09-13 16:31:56 +0200
commitf14ef7a6069cf45ae11261d7d20df6a5d7870dde (patch)
tree019e4c9fdc25e4095e134585577e355b9b0a33e5
parentf4c51a96d50953d5fb6e9eb62194f226e2cbfd3c (diff)
downloadiced-f14ef7a6069cf45ae11261d7d20df6a5d7870dde.tar.gz
iced-f14ef7a6069cf45ae11261d7d20df6a5d7870dde.tar.bz2
iced-f14ef7a6069cf45ae11261d7d20df6a5d7870dde.zip
Fix `clippy` lints
Diffstat (limited to '')
-rw-r--r--graphics/src/text/editor.rs27
-rw-r--r--widget/src/helpers.rs6
-rw-r--r--widget/src/text_editor.rs30
3 files changed, 41 insertions, 22 deletions
diff --git a/graphics/src/text/editor.rs b/graphics/src/text/editor.rs
index 747f3a80..d31ea390 100644
--- a/graphics/src/text/editor.rs
+++ b/graphics/src/text/editor.rs
@@ -25,7 +25,7 @@ impl Editor {
}
pub fn buffer(&self) -> &cosmic_text::Buffer {
- &self.internal().editor.buffer()
+ self.internal().editor.buffer()
}
pub fn downgrade(&self) -> Weak {
@@ -53,11 +53,11 @@ impl editor::Editor for Editor {
line_height: 1.0,
});
+ let mut font_system =
+ text::font_system().write().expect("Write font system");
+
buffer.set_text(
- text::font_system()
- .write()
- .expect("Write font system")
- .raw(),
+ font_system.raw(),
text,
cosmic_text::Attrs::new(),
cosmic_text::Shaping::Advanced,
@@ -65,6 +65,7 @@ impl editor::Editor for Editor {
Editor(Some(Arc::new(Internal {
editor: cosmic_text::Editor::new(buffer),
+ version: font_system.version(),
..Default::default()
})))
}
@@ -347,6 +348,14 @@ impl editor::Editor for Editor {
let mut changed = false;
+ if font_system.version() != internal.version {
+ for line in internal.editor.buffer_mut().lines.iter_mut() {
+ line.reset();
+ }
+
+ changed = true;
+ }
+
if new_font != internal.font {
for line in internal.editor.buffer_mut().lines.iter_mut() {
let _ = line.set_attrs_list(cosmic_text::AttrsList::new(
@@ -383,7 +392,7 @@ impl editor::Editor for Editor {
}
if changed {
- internal.min_bounds = text::measure(&internal.editor.buffer());
+ internal.min_bounds = text::measure(internal.editor.buffer());
}
self.0 = Some(Arc::new(internal));
@@ -453,11 +462,11 @@ impl PartialEq for Weak {
}
}
-fn highlight_line<'a>(
- line: &'a cosmic_text::BufferLine,
+fn highlight_line(
+ line: &cosmic_text::BufferLine,
from: usize,
to: usize,
-) -> impl Iterator<Item = (f32, f32)> + 'a {
+) -> impl Iterator<Item = (f32, f32)> + '_ {
let layout = line
.layout_opt()
.as_ref()
diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs
index 61541eac..e3f31513 100644
--- a/widget/src/helpers.rs
+++ b/widget/src/helpers.rs
@@ -210,9 +210,9 @@ where
/// Creates a new [`TextEditor`].
///
/// [`TextEditor`]: crate::TextEditor
-pub fn text_editor<'a, Message, Renderer>(
- content: &'a text_editor::Content<Renderer>,
-) -> TextEditor<'a, Message, Renderer>
+pub fn text_editor<Message, Renderer>(
+ content: &text_editor::Content<Renderer>,
+) -> TextEditor<'_, Message, Renderer>
where
Message: Clone,
Renderer: core::text::Renderer,
diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs
index 38c243bd..48de6409 100644
--- a/widget/src/text_editor.rs
+++ b/widget/src/text_editor.rs
@@ -7,8 +7,8 @@ use crate::core::text::editor::{Cursor, Editor as _};
use crate::core::text::{self, LineHeight};
use crate::core::widget::{self, Widget};
use crate::core::{
- Clipboard, Color, Element, Length, Padding, Pixels, Point, Rectangle,
- Shell, Vector,
+ Clipboard, Color, Element, Length, Padding, Pixels, Rectangle, Shell,
+ Vector,
};
use std::cell::RefCell;
@@ -205,8 +205,12 @@ where
Update::Edit(action) => {
shell.publish(on_edit(action));
}
- Update::Copy => {}
- Update::Paste => if let Some(_contents) = clipboard.read() {},
+ Update::Copy => todo!(),
+ Update::Paste => {
+ if let Some(_contents) = clipboard.read() {
+ todo!()
+ }
+ }
}
event::Status::Captured
@@ -353,7 +357,6 @@ impl Update {
cursor: mouse::Cursor,
) -> Option<Self> {
let edit = |action| Some(Update::Edit(action));
- let move_ = |motion| Some(Update::Edit(Action::Move(motion)));
match event {
Event::Mouse(event) => match event {
@@ -399,11 +402,12 @@ impl Update {
modifiers,
} if state.is_focused => {
if let Some(motion) = motion(key_code) {
- let motion = if modifiers.control() {
- motion.widen()
- } else {
- motion
- };
+ let motion =
+ if platform::is_jump_modifier_pressed(modifiers) {
+ motion.widen()
+ } else {
+ motion
+ };
return edit(if modifiers.shift() {
Action::Select(motion)
@@ -417,6 +421,12 @@ impl Update {
keyboard::KeyCode::Backspace => edit(Action::Backspace),
keyboard::KeyCode::Delete => edit(Action::Delete),
keyboard::KeyCode::Escape => Some(Self::Unfocus),
+ keyboard::KeyCode::C => Some(Self::Copy),
+ keyboard::KeyCode::V
+ if modifiers.command() && !modifiers.alt() =>
+ {
+ Some(Self::Paste)
+ }
_ => None,
}
}