load tray icon from asset
This commit is contained in:
		
							parent
							
								
									fc875f7ad6
								
							
						
					
					
						commit
						be301b825f
					
				
							
								
								
									
										20
									
								
								src/tray.rs
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/tray.rs
									
									
									
									
									
								
							| @ -29,9 +29,10 @@ pub fn make_tray() -> hbb_common::ResultType<()> { | ||||
|     { | ||||
|         icon = include_bytes!("../res/tray-icon.ico"); | ||||
|     } | ||||
| 
 | ||||
|     let (icon_rgba, icon_width, icon_height) = { | ||||
|         let image = image::load_from_memory(icon) | ||||
|             .context("Failed to open icon path")? | ||||
|         let image = load_icon_from_asset() | ||||
|             .unwrap_or(image::load_from_memory(icon).context("Failed to open icon path")?) | ||||
|             .into_rgba8(); | ||||
|         let (width, height) = image.dimensions(); | ||||
|         let rgba = image.into_raw(); | ||||
| @ -202,3 +203,18 @@ async fn start_query_session_count(sender: std::sync::mpsc::Sender<Data>) { | ||||
|         hbb_common::sleep(1.).await; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| fn load_icon_from_asset() -> Option<image::DynamicImage> { | ||||
|     #[cfg(windows)] | ||||
|     if let Ok(cmd) = std::env::current_exe() { | ||||
|         let path = r".\data\flutter_assets\assets\icon.ico"; | ||||
|         if let Some(path) = cmd.parent().map(|x| x.join(path)) { | ||||
|             if path.exists() { | ||||
|                 if let Ok(image) = image::open(path) { | ||||
|                     return Some(image); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     None | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user