mirror of
				https://github.com/slint-ui/slint.git
				synced 2025-10-31 12:04:33 +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,11 +291,13 @@ 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() { | ||||||
|  |             if element_covers_point(x, y, &component_instance, &element) { | ||||||
|                 // We clicked on the already selected element: Do nothing!
 |                 // We clicked on the already selected element: Do nothing!
 | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     let elements = collect_all_elements_covering(x, y, &component_instance); |     let elements = collect_all_elements_covering(x, y, &component_instance); | ||||||
| 
 | 
 | ||||||
|  | @ -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
	
	 Tobias Hunger
						Tobias Hunger