diff --git a/src/main.rs b/src/main.rs index f8b9351..10b1555 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,7 @@ use cosmic::{ widget::{self, button, icon, nav_bar, segmented_button, view_switcher}, ApplicationExt, Element, }; -use cosmic_text::{FontSystem, SyntaxSystem, ViMode}; +use cosmic_text::{FontSystem, SwashCache, SyntaxSystem, ViMode}; use std::{ env, fs, path::{Path, PathBuf}, @@ -39,6 +39,7 @@ mod text_box; //TODO: re-use iced FONT_SYSTEM lazy_static::lazy_static! { static ref FONT_SYSTEM: Mutex = Mutex::new(FontSystem::new()); + static ref SWASH_CACHE: Mutex = Mutex::new(SwashCache::new()); static ref SYNTAX_SYSTEM: SyntaxSystem = SyntaxSystem::new(); } diff --git a/src/text_box.rs b/src/text_box.rs index b4f9a7e..f09a077 100644 --- a/src/text_box.rs +++ b/src/text_box.rs @@ -17,10 +17,10 @@ use cosmic::{ }, theme::{Theme, ThemeType}, }; -use cosmic_text::{Action, Edit, SwashCache}; +use cosmic_text::{Action, Edit}; use std::{cmp, sync::Mutex, time::Instant}; -use crate::FONT_SYSTEM; +use crate::{FONT_SYSTEM, SWASH_CACHE}; pub struct Appearance { background_color: Option, @@ -281,7 +281,7 @@ where }; editor.draw( - &mut state.cache.lock().unwrap(), + &mut SWASH_CACHE.lock().unwrap(), text_color, |x, y, w, h, color| { draw_rect(buffer, image_w, image_h, x, y, w as i32, h as i32, color.0); @@ -446,7 +446,6 @@ where pub struct State { is_dragging: bool, - cache: Mutex, handle: Mutex, } @@ -455,7 +454,6 @@ impl State { pub fn new() -> State { State { is_dragging: false, - cache: Mutex::new(SwashCache::new()), //TODO: make option! handle: Mutex::new(image::Handle::from_pixels(1, 1, vec![0, 0, 0, 0])), }