diff options
Diffstat (limited to 'glutin/src')
| -rw-r--r-- | glutin/src/application.rs | 22 | 
1 files changed, 17 insertions, 5 deletions
diff --git a/glutin/src/application.rs b/glutin/src/application.rs index dbc9b580..a222036a 100644 --- a/glutin/src/application.rs +++ b/glutin/src/application.rs @@ -2,6 +2,7 @@  use crate::mouse;  use crate::{Error, Executor, Runtime}; +pub use iced_winit::application::StyleSheet;  pub use iced_winit::Application;  use iced_graphics::window; @@ -25,6 +26,7 @@ where      A: Application + 'static,      E: Executor + 'static,      C: window::GLCompositor<Renderer = A::Renderer> + 'static, +    <A::Renderer as iced_native::Renderer>::Theme: StyleSheet,  {      use futures::task;      use futures::Future; @@ -203,12 +205,15 @@ async fn run_instance<A, E, C>(      A: Application + 'static,      E: Executor + 'static,      C: window::GLCompositor<Renderer = A::Renderer> + 'static, +    <A::Renderer as iced_native::Renderer>::Theme: StyleSheet,  {      use glutin::event;      use iced_winit::futures::stream::StreamExt;      let mut state = application::State::new(&application, context.window());      let mut viewport_version = state.viewport_version(); +    let mut theme = application.theme(); +      let mut user_interface =          ManuallyDrop::new(application::build_user_interface(              &mut application, @@ -273,6 +278,7 @@ async fn run_instance<A, E, C>(                      let should_exit = application.should_exit(); +                    theme = application.theme();                      user_interface =                          ManuallyDrop::new(application::build_user_interface(                              &mut application, @@ -288,8 +294,11 @@ async fn run_instance<A, E, C>(                  }                  debug.draw_started(); -                let new_mouse_interaction = -                    user_interface.draw(&mut renderer, state.cursor_position()); +                let new_mouse_interaction = user_interface.draw( +                    &mut renderer, +                    &theme, +                    state.cursor_position(), +                );                  debug.draw_finished();                  if new_mouse_interaction != mouse_interaction { @@ -341,8 +350,11 @@ async fn run_instance<A, E, C>(                      debug.layout_finished();                      debug.draw_started(); -                    let new_mouse_interaction = user_interface -                        .draw(&mut renderer, state.cursor_position()); +                    let new_mouse_interaction = user_interface.draw( +                        &mut renderer, +                        &theme, +                        state.cursor_position(), +                    );                      debug.draw_finished();                      if new_mouse_interaction != mouse_interaction { @@ -368,7 +380,7 @@ async fn run_instance<A, E, C>(                  compositor.present(                      &mut renderer,                      state.viewport(), -                    state.background_color(), +                    theme.background_color(),                      &debug.overlay(),                  );  | 
