From 12da846c81505975cca7d0c3134d76a807f83a4b Mon Sep 17 00:00:00 2001
From: sam edelsten <samedelsten1@gmail.com>
Date: Mon, 24 Jul 2023 11:52:41 +0100
Subject: [PATCH] hide cursor on readonly buffers

---
 TODO       |  6 ++++--
 src/lib.rs | 19 ++++++++++++++++---
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/TODO b/TODO
index b92a24f..39f53d7 100644
--- a/TODO
+++ b/TODO
@@ -3,11 +3,13 @@
 
 BUGS INTRODUCED:
 
-[ ] Cursor on readonly
 [ ] Window resizing broken
     Used to redraw on click, now redraws on scroll or drag?
     Now drag doesn't work either (tested on readonly, might be that)
+    Either way redraw on resize would be nice.
 
 BUGS SQUASHED:
 
-[x] Font size has been changed somehow
\ No newline at end of file
+[x] Font size has been changed somehow
+
+[x] Cursor on readonly
diff --git a/src/lib.rs b/src/lib.rs
index 548c95b..6339a5b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -139,12 +139,18 @@ impl CosmicEditor {
 /// Adds the font system to each editor when added
 fn cosmic_editor_builder(
     mut added_editors: Query<
-        (&mut CosmicEditor, &CosmicAttrs, &CosmicMetrics),
+        (
+            &mut CosmicEditor,
+            &CosmicAttrs,
+            &CosmicMetrics,
+            &BackgroundColor,
+            Option<&ReadOnly>,
+        ),
         Added<CosmicEditor>,
     >,
     mut font_system: ResMut<CosmicFontSystem>,
 ) {
-    for (mut editor, attrs, metrics) in added_editors.iter_mut() {
+    for (mut editor, attrs, metrics, background_color, readonly) in added_editors.iter_mut() {
         // keep old text if set
         let mut text = editor.get_text();
 
@@ -167,7 +173,14 @@ fn cosmic_editor_builder(
         editor
             .0
             .buffer_mut() // TODO size here????
-            .set_size(&mut font_system.0, 100., 100.)
+            .set_size(&mut font_system.0, 100., 100.);
+
+        // hide cursor on readonly buffers
+        let mut cursor = editor.0.cursor();
+        if readonly.is_some() {
+            cursor.color = Some(bevy_color_to_cosmic(background_color.0));
+        }
+        editor.0.set_cursor(cursor);
     }
 }
 
-- 
GitLab