A simple CPU rendered GUI IDE experience.
handle selection exits properly
bendn 4 weeks ago
parent 067f34c · commit e43847b
-rw-r--r--src/edi.rs4
-rw-r--r--src/edi/st.rs2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/edi.rs b/src/edi.rs
index a6a585d..dd1e064 100644
--- a/src/edi.rs
+++ b/src/edi.rs
@@ -1308,6 +1308,10 @@ impl Editor {
change!(self);
}
Some(Do::Quit) => return ControlFlow::Break(()),
+ Some(Do::SetCursor(x)) => {
+ self.text.cursor = x;
+ self.text.setc();
+ }
Some(Do::StartSelection) => {
let Key::Named(y) = event.logical_key else { panic!() };
*self.state.sel() = self.text.extend_selection(
diff --git a/src/edi/st.rs b/src/edi/st.rs
index ed149b8..8eac701 100644
--- a/src/edi/st.rs
+++ b/src/edi/st.rs
@@ -93,6 +93,8 @@ Selection(x) => {
K(Key::Character(y) if y == "/" && ctrl()) => Default [Comment(Range<usize> => x)],
K(Key::Character(y) if !ctrl()) => Default [Insert((Range<usize>, SmolStr) => (x, y))],
+ K(Key::Named(ArrowLeft)) => Default [SetCursor(usize => x.start)],
+ K(Key::Named(ArrowRight)) => Default [SetCursor(usize => x.end)],
K(_) => Default [Edit],
},
Save => {