@@ -233,23 +233,25 @@ impl App {
233
233
if let Some ( webview) = self . webviews . get ( & id) {
234
234
use wry:: Rect ;
235
235
236
- webview
237
- . desktop_context
238
- . webview
239
- . set_bounds ( Rect {
240
- position : wry:: dpi:: Position :: Logical ( wry:: dpi:: LogicalPosition :: new ( 0.0 , 0.0 ) ) ,
241
- size : wry:: dpi:: Size :: Physical ( wry:: dpi:: PhysicalSize :: new (
242
- size. width ,
243
- size. height ,
244
- ) ) ,
245
- } )
246
- . unwrap ( ) ;
236
+ _ = webview. desktop_context . webview . set_bounds ( Rect {
237
+ position : wry:: dpi:: Position :: Logical ( wry:: dpi:: LogicalPosition :: new ( 0.0 , 0.0 ) ) ,
238
+ size : wry:: dpi:: Size :: Physical ( wry:: dpi:: PhysicalSize :: new (
239
+ size. width ,
240
+ size. height ,
241
+ ) ) ,
242
+ } ) ;
247
243
}
248
244
}
249
245
250
246
pub fn handle_start_cause_init ( & mut self ) {
251
- let virtual_dom = self . unmounted_dom . take ( ) . unwrap ( ) ;
252
- let mut cfg = self . cfg . take ( ) . unwrap ( ) ;
247
+ let virtual_dom = self
248
+ . unmounted_dom
249
+ . take ( )
250
+ . expect ( "Virtualdom should be set before initialization" ) ;
251
+ let mut cfg = self
252
+ . cfg
253
+ . take ( )
254
+ . expect ( "Config should be set before initialization" ) ;
253
255
254
256
self . is_visible_before_start = cfg. window . window . visible ;
255
257
cfg. window = cfg. window . with_visible ( false ) ;
@@ -268,9 +270,10 @@ impl App {
268
270
pub fn handle_browser_open ( & mut self , msg : IpcMessage ) {
269
271
if let Some ( temp) = msg. params ( ) . as_object ( ) {
270
272
if temp. contains_key ( "href" ) {
271
- let open = webbrowser:: open ( temp[ "href" ] . as_str ( ) . unwrap ( ) ) ;
272
- if let Err ( e) = open {
273
- tracing:: error!( "Open Browser error: {:?}" , e) ;
273
+ if let Some ( href) = temp. get ( "href" ) . and_then ( |v| v. as_str ( ) ) {
274
+ if let Err ( e) = webbrowser:: open ( href) {
275
+ tracing:: error!( "Open Browser error: {:?}" , e) ;
276
+ }
274
277
}
275
278
}
276
279
}
@@ -362,7 +365,9 @@ impl App {
362
365
363
366
let data = Rc :: new ( PlatformEventData :: new ( as_any) ) ;
364
367
365
- let view = self . webviews . get_mut ( & window) . unwrap ( ) ;
368
+ let Some ( view) = self . webviews . get_mut ( & window) else {
369
+ return ;
370
+ } ;
366
371
367
372
let event = dioxus_core:: Event :: new ( data as Rc < dyn Any > , event_bubbles) ;
368
373
@@ -452,8 +457,14 @@ impl App {
452
457
if let Some ( webview) = self . webviews . values ( ) . next ( ) {
453
458
let window = & webview. desktop_context . window ;
454
459
455
- let monitor = window. current_monitor ( ) . unwrap ( ) ;
456
- let position = window. outer_position ( ) . unwrap ( ) ;
460
+ let Some ( monitor) = window. current_monitor ( ) else {
461
+ return ;
462
+ } ;
463
+
464
+ let Ok ( position) = window. outer_position ( ) else {
465
+ return ;
466
+ } ;
467
+
457
468
let size = window. outer_size ( ) ;
458
469
459
470
let x = position. x ;
@@ -468,12 +479,16 @@ impl App {
468
479
_ => 0 ,
469
480
} ;
470
481
482
+ let Some ( monitor_name) = monitor. name ( ) else {
483
+ return ;
484
+ } ;
485
+
471
486
let state = PreservedWindowState {
472
487
x,
473
488
y,
474
489
width : size. width . max ( 200 ) ,
475
490
height : size. height . saturating_sub ( adjustment) . max ( 200 ) ,
476
- monitor : monitor . name ( ) . unwrap ( ) . to_string ( ) ,
491
+ monitor : monitor_name . to_string ( ) ,
477
492
} ;
478
493
479
494
// Yes... I know... we're loading a file that might not be ours... but it's a debug feature
0 commit comments