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 composite = Rc::clone(&composite);
|
||||||
let refresh_preview = refresh_preview.clone();
|
let refresh_preview = refresh_preview.clone();
|
||||||
scale_x.connect_value_changed(move |s| {
|
scale_x.connect_value_changed(move |s| {
|
||||||
let mut comp = composite.borrow_mut();
|
let mut changed = false;
|
||||||
if (comp.emblem_x - s.value()).abs() > f64::EPSILON {
|
{
|
||||||
comp.emblem_x = s.value();
|
let mut comp = composite.borrow_mut();
|
||||||
comp.is_modified = true;
|
if (comp.emblem_x - s.value()).abs() > f64::EPSILON {
|
||||||
|
comp.emblem_x = s.value();
|
||||||
|
comp.is_modified = true;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if changed {
|
||||||
refresh_preview();
|
refresh_preview();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -141,10 +147,16 @@ pub fn build_editor_page(
|
|||||||
let composite = Rc::clone(&composite);
|
let composite = Rc::clone(&composite);
|
||||||
let refresh_preview = refresh_preview.clone();
|
let refresh_preview = refresh_preview.clone();
|
||||||
scale_y.connect_value_changed(move |s| {
|
scale_y.connect_value_changed(move |s| {
|
||||||
let mut comp = composite.borrow_mut();
|
let mut changed = false;
|
||||||
if (comp.emblem_y - s.value()).abs() > f64::EPSILON {
|
{
|
||||||
comp.emblem_y = s.value();
|
let mut comp = composite.borrow_mut();
|
||||||
comp.is_modified = true;
|
if (comp.emblem_y - s.value()).abs() > f64::EPSILON {
|
||||||
|
comp.emblem_y = s.value();
|
||||||
|
comp.is_modified = true;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if changed {
|
||||||
refresh_preview();
|
refresh_preview();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -153,10 +165,16 @@ pub fn build_editor_page(
|
|||||||
let composite = Rc::clone(&composite);
|
let composite = Rc::clone(&composite);
|
||||||
let refresh_preview = refresh_preview.clone();
|
let refresh_preview = refresh_preview.clone();
|
||||||
scale_size.connect_value_changed(move |s| {
|
scale_size.connect_value_changed(move |s| {
|
||||||
let mut comp = composite.borrow_mut();
|
let mut changed = false;
|
||||||
if (comp.emblem_size - s.value()).abs() > f64::EPSILON {
|
{
|
||||||
comp.emblem_size = s.value();
|
let mut comp = composite.borrow_mut();
|
||||||
comp.is_modified = true;
|
if (comp.emblem_size - s.value()).abs() > f64::EPSILON {
|
||||||
|
comp.emblem_size = s.value();
|
||||||
|
comp.is_modified = true;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if changed {
|
||||||
refresh_preview();
|
refresh_preview();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user