mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-30 11:37:12 +00:00
live preview: Retrieve ElementSelection from preview_state
... and not the selected element directly. This will allow to move more code into the proper submodules.
This commit is contained in:
parent
17fbe46342
commit
df1db6aafe
2 changed files with 15 additions and 7 deletions
|
|
@ -164,7 +164,10 @@ fn change_geometry_of_selected_element(x: f32, y: f32, width: f32, height: f32)
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
let Some(selected_element) = selected_element() else {
|
let Some(selected_element_struct) = selected_element() else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
let Some(selected_element) = selected_element_struct.as_element() else {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
let Some(component_instance) = component_instance() else {
|
let Some(component_instance) = component_instance() else {
|
||||||
|
|
@ -657,10 +660,10 @@ fn set_selected_element(
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn selected_element() -> Option<ElementRc> {
|
fn selected_element() -> Option<ElementSelection> {
|
||||||
PREVIEW_STATE.with(move |preview_state| {
|
PREVIEW_STATE.with(move |preview_state| {
|
||||||
let preview_state = preview_state.borrow();
|
let preview_state = preview_state.borrow();
|
||||||
preview_state.selected.as_ref().and_then(|es| es.as_element())
|
preview_state.selected.clone()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -291,9 +291,11 @@ pub fn select_element_at(x: f32, y: f32, enter_component: bool) {
|
||||||
let root_element = root_element(&component_instance);
|
let root_element = root_element(&component_instance);
|
||||||
|
|
||||||
if let Some(se) = super::selected_element() {
|
if let Some(se) = super::selected_element() {
|
||||||
if element_covers_point(x, y, &component_instance, &se) {
|
if let Some(element) = se.as_element() {
|
||||||
// We clicked on the already selected element: Do nothing!
|
if element_covers_point(x, y, &component_instance, &element) {
|
||||||
return;
|
// We clicked on the already selected element: Do nothing!
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -315,7 +317,10 @@ pub fn select_element_behind(x: f32, y: f32, enter_component: bool, reverse: boo
|
||||||
};
|
};
|
||||||
|
|
||||||
let root_element = root_element(&component_instance);
|
let root_element = root_element(&component_instance);
|
||||||
let Some(selected_element) = super::selected_element() else {
|
let Some(selected_element_data) = super::selected_element() else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
let Some(selected_element) = selected_element_data.as_element() else {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
let Some(selected_component) = selected_element.borrow().enclosing_component.upgrade() else {
|
let Some(selected_component) = selected_element.borrow().enclosing_component.upgrade() else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue