mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-28 18:52:16 +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;
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
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| {
|
||||
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);
|
||||
|
||||
if let Some(se) = super::selected_element() {
|
||||
if element_covers_point(x, y, &component_instance, &se) {
|
||||
// We clicked on the already selected element: Do nothing!
|
||||
return;
|
||||
if let Some(element) = se.as_element() {
|
||||
if element_covers_point(x, y, &component_instance, &element) {
|
||||
// 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 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;
|
||||
};
|
||||
let Some(selected_component) = selected_element.borrow().enclosing_component.upgrade() else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue