mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-04-28 03:00:18 -04:00
wallet: editbox fix race condition
This commit is contained in:
@@ -402,10 +402,10 @@ impl App {
|
||||
let prop = node.get_property("rect").unwrap();
|
||||
prop.set_f32(0, 0.).unwrap();
|
||||
prop.set_f32(1, 0.).unwrap();
|
||||
let code = vec![Op::LoadVar("lw".to_string())];
|
||||
let code = vec![Op::LoadVar("w".to_string())];
|
||||
prop.set_expr(2, code).unwrap();
|
||||
let code = vec![Op::Sub((
|
||||
Box::new(Op::LoadVar("lh".to_string())),
|
||||
Box::new(Op::LoadVar("h".to_string())),
|
||||
Box::new(Op::ConstFloat32(50.)),
|
||||
))];
|
||||
prop.set_expr(3, code).unwrap();
|
||||
|
||||
@@ -279,14 +279,17 @@ impl EditBox {
|
||||
}
|
||||
on_modify.when_change(rect.clone(), redraw);
|
||||
on_modify.when_change(baseline.prop(), redraw);
|
||||
on_modify.when_change(scroll.prop(), redraw);
|
||||
on_modify.when_change(cursor_pos.prop(), redraw);
|
||||
// The commented properties are modified on input events
|
||||
// So then redraw() will get repeatedly triggered when these properties
|
||||
// are changed. We should find a solution. For now the hooks are disabled.
|
||||
//on_modify.when_change(scroll.prop(), redraw);
|
||||
//on_modify.when_change(cursor_pos.prop(), redraw);
|
||||
on_modify.when_change(font_size.prop(), redraw);
|
||||
on_modify.when_change(text.prop(), redraw);
|
||||
on_modify.when_change(text_color.prop(), redraw);
|
||||
on_modify.when_change(cursor_color.prop(), redraw);
|
||||
on_modify.when_change(hi_bg_color.prop(), redraw);
|
||||
on_modify.when_change(selected.clone(), redraw);
|
||||
//on_modify.when_change(selected.clone(), redraw);
|
||||
on_modify.when_change(z_index.prop(), redraw);
|
||||
on_modify.when_change(debug.prop(), redraw);
|
||||
|
||||
@@ -1119,14 +1122,12 @@ impl EditBox {
|
||||
}
|
||||
|
||||
async fn redraw(&self) {
|
||||
let old = self.render_info.lock().unwrap().clone();
|
||||
// draw will recalc this when it's None
|
||||
let old = std::mem::replace(&mut *self.render_info.lock().unwrap(), None);
|
||||
|
||||
let glyphs = self.text_shaper.shape(self.text.get(), self.font_size.get()).await;
|
||||
*self.glyphs.lock().unwrap() = glyphs;
|
||||
|
||||
// draw will recalc this when it's None
|
||||
*self.render_info.lock().unwrap() = None;
|
||||
|
||||
let sg = self.sg.lock().await;
|
||||
let node = sg.get_node(self.node_id).unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user