A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/text.rs')
-rw-r--r--src/text.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/text.rs b/src/text.rs
index fd1f520..a70c8c1 100644
--- a/src/text.rs
+++ b/src/text.rs
@@ -340,11 +340,13 @@ impl TextArea {
[(x1, y1), (x2, y2)]
}
- pub fn map_to_visual(
- &self,
- (x, y): (usize, usize),
- ) -> Option<(usize, usize)> {
- self.reverse_source_map(y)?.get(x).map(|&x| (x, y))
+ pub fn map_to_visual(&self, (x, y): (usize, usize)) -> (usize, usize) {
+ (
+ self.reverse_source_map(y)
+ .and_then(|v| v.get(x).copied())
+ .unwrap_or(x),
+ y,
+ )
}
/// number of lines
@@ -1097,8 +1099,8 @@ impl TextArea {
}
selection.map(|x| {
let [a, b] = self.position(x);
- let a = self.map_to_visual(a).unwrap();
- let b = self.map_to_visual(b).unwrap();
+ let a = self.map_to_visual(a);
+ let b = self.map_to_visual(b);
cells
.get_range_enumerated(a, b)
.filter(|(c, (x, y))| {