@@ -167,13 +167,19 @@ where
167167 } ;
168168
169169 let compositor_settings = A :: renderer_settings ( ) ;
170- let ( mut compositor, renderer) = C :: new ( compositor_settings, Some ( window) ) ?;
170+ let ( mut compositor, mut renderer) = C :: new ( compositor_settings, Some ( window) ) ?;
171171 let surface = compositor. create_surface (
172172 window,
173173 viewport. physical_width ( ) ,
174174 viewport. physical_height ( ) ,
175175 ) ;
176176
177+ for font in settings. fonts {
178+ use crate :: core:: text:: Renderer ;
179+
180+ renderer. load_font ( font) ;
181+ }
182+
177183 let ( window_queue, window_queue_rx) = WindowQueue :: new ( ) ;
178184 let event_status = Rc :: new ( RefCell :: new ( baseview:: EventStatus :: Ignored ) ) ;
179185
@@ -281,7 +287,9 @@ async fn run_instance<A, E, C>(
281287 match event {
282288 RuntimeEvent :: MainEventsCleared => {
283289 if let Some ( message) = & window_subs. on_frame {
284- messages. push ( message ( ) ) ;
290+ if let Some ( message) = message ( ) {
291+ messages. push ( message) ;
292+ }
285293 }
286294
287295 if !did_process_event
@@ -518,7 +526,9 @@ async fn run_instance<A, E, C>(
518526 if let Some ( message) = & window_subs. on_window_will_close {
519527 // Send message to user before exiting the loop.
520528
521- messages. push ( message ( ) ) ;
529+ if let Some ( message) = message ( ) {
530+ messages. push ( message) ;
531+ }
522532 let mut cache = ManuallyDrop :: into_inner ( user_interface) . into_cache ( ) ;
523533
524534 update (
0 commit comments