浏览代码

wallet: regen glyphs on rescale

darkfi 1 年之前
父节点
当前提交
3067d970ea
共有 1 个文件被更改,包括 5 次插入3 次删除
  1. 5 3
      bin/darkwallet/src/ui/editbox.rs

+ 5 - 3
bin/darkwallet/src/ui/editbox.rs

@@ -930,7 +930,7 @@ impl EditBox {
     }
 
     async fn redraw(&self) {
-        let Some(draw_update) = self.draw_cached() else {
+        let Some(draw_update) = self.draw_cached().await else {
             error!(target: "ui::editbox", "Text failed to draw");
             return;
         };
@@ -945,7 +945,7 @@ impl EditBox {
         }
     }
 
-    fn draw_cached(&self) -> Option<DrawUpdate> {
+    async fn draw_cached(&self) -> Option<DrawUpdate> {
         let rect = self.rect.get();
 
         let mut freed_textures = vec![];
@@ -953,6 +953,8 @@ impl EditBox {
 
         let window_scale = self.window_scale.get();
         if self.old_window_scale.swap(window_scale, Ordering::Relaxed) != window_scale {
+            self.regen_glyphs().await;
+
             let render_info = std::mem::replace(&mut *self.render_info.lock().unwrap(), None);
             // We're finished with these so clean up.
             if let Some(old) = render_info {
@@ -1032,7 +1034,7 @@ impl UIObject for EditBox {
         debug!(target: "ui::editbox", "EditBox::draw()");
         *self.parent_rect.lock().unwrap() = Some(parent_rect);
         self.rect.eval(&parent_rect).ok()?;
-        self.draw_cached()
+        self.draw_cached().await
     }
 
     async fn handle_char(&self, key: char, mods: KeyMods, repeat: bool) -> bool {