fix: drop RefCell borrow in slider callbacks before calling refresh_preview
This commit is contained in:
+30
-12
@@ -129,10 +129,16 @@ pub fn build_editor_page(
|
||||
let composite = Rc::clone(&composite);
|
||||
let refresh_preview = refresh_preview.clone();
|
||||
scale_x.connect_value_changed(move |s| {
|
||||
let mut comp = composite.borrow_mut();
|
||||
if (comp.emblem_x - s.value()).abs() > f64::EPSILON {
|
||||
comp.emblem_x = s.value();
|
||||
comp.is_modified = true;
|
||||
let mut changed = false;
|
||||
{
|
||||
let mut comp = composite.borrow_mut();
|
||||
if (comp.emblem_x - s.value()).abs() > f64::EPSILON {
|
||||
comp.emblem_x = s.value();
|
||||
comp.is_modified = true;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if changed {
|
||||
refresh_preview();
|
||||
}
|
||||
});
|
||||
@@ -141,10 +147,16 @@ pub fn build_editor_page(
|
||||
let composite = Rc::clone(&composite);
|
||||
let refresh_preview = refresh_preview.clone();
|
||||
scale_y.connect_value_changed(move |s| {
|
||||
let mut comp = composite.borrow_mut();
|
||||
if (comp.emblem_y - s.value()).abs() > f64::EPSILON {
|
||||
comp.emblem_y = s.value();
|
||||
comp.is_modified = true;
|
||||
let mut changed = false;
|
||||
{
|
||||
let mut comp = composite.borrow_mut();
|
||||
if (comp.emblem_y - s.value()).abs() > f64::EPSILON {
|
||||
comp.emblem_y = s.value();
|
||||
comp.is_modified = true;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if changed {
|
||||
refresh_preview();
|
||||
}
|
||||
});
|
||||
@@ -153,10 +165,16 @@ pub fn build_editor_page(
|
||||
let composite = Rc::clone(&composite);
|
||||
let refresh_preview = refresh_preview.clone();
|
||||
scale_size.connect_value_changed(move |s| {
|
||||
let mut comp = composite.borrow_mut();
|
||||
if (comp.emblem_size - s.value()).abs() > f64::EPSILON {
|
||||
comp.emblem_size = s.value();
|
||||
comp.is_modified = true;
|
||||
let mut changed = false;
|
||||
{
|
||||
let mut comp = composite.borrow_mut();
|
||||
if (comp.emblem_size - s.value()).abs() > f64::EPSILON {
|
||||
comp.emblem_size = s.value();
|
||||
comp.is_modified = true;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if changed {
|
||||
refresh_preview();
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user