summaryrefslogtreecommitdiffstats
path: root/glutin
diff options
context:
space:
mode:
Diffstat (limited to 'glutin')
-rw-r--r--glutin/src/application.rs22
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(),
);