From 056f7e6951f6e96da82f35626b8920f6853bea43 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 15 Dec 2020 06:44:00 +0100 Subject: Change cursor position on touch event --- winit/src/application/state.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'winit/src/application') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index 58bc7ed6..46297370 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -2,7 +2,7 @@ use crate::conversion; use crate::{Application, Color, Debug, Mode, Point, Size, Viewport}; use std::marker::PhantomData; -use winit::event::WindowEvent; +use winit::event::{Touch, WindowEvent}; use winit::window::Window; /// The state of a windowed [`Application`]. @@ -128,7 +128,10 @@ impl State { self.viewport_version = self.viewport_version.wrapping_add(1); } - WindowEvent::CursorMoved { position, .. } => { + WindowEvent::CursorMoved { position, .. } + | WindowEvent::Touch(Touch { + location: position, .. + }) => { self.cursor_position = *position; } WindowEvent::CursorLeft { .. } => { -- cgit From cdab8f90fb525c509e0a15bb1d0b3d7213e176f3 Mon Sep 17 00:00:00 2001 From: Cory Forsstrom Date: Thu, 8 Apr 2021 12:58:08 -0700 Subject: add window visibility --- winit/src/application/state.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'winit/src/application') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index 46297370..d157211a 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -12,6 +12,7 @@ pub struct State { mode: Mode, background_color: Color, scale_factor: f64, + visible: bool, viewport: Viewport, viewport_version: usize, cursor_position: winit::dpi::PhysicalPosition, @@ -26,6 +27,7 @@ impl State { let mode = application.mode(); let background_color = application.background_color(); let scale_factor = application.scale_factor(); + let visible = application.visible(); let viewport = { let physical_size = window.inner_size(); @@ -41,6 +43,7 @@ impl State { mode, background_color, scale_factor, + visible, viewport, viewport_version: 0, // TODO: Encode cursor availability in the type-system @@ -201,5 +204,14 @@ impl State { self.scale_factor = new_scale_factor; } + + // Update window visibility + let new_visible = application.visible(); + + if self.visible != new_visible { + window.set_visible(new_visible); + + self.visible = new_visible; + } } } -- cgit From 84c0c9bc7ab858793183560739c8fd6087e22f6e Mon Sep 17 00:00:00 2001 From: Cory Forsstrom Date: Fri, 9 Apr 2021 09:00:29 -0700 Subject: use Mode::Hidden instead --- winit/src/application/state.rs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'winit/src/application') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index d157211a..b54d3aed 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -12,7 +12,6 @@ pub struct State { mode: Mode, background_color: Color, scale_factor: f64, - visible: bool, viewport: Viewport, viewport_version: usize, cursor_position: winit::dpi::PhysicalPosition, @@ -27,7 +26,6 @@ impl State { let mode = application.mode(); let background_color = application.background_color(); let scale_factor = application.scale_factor(); - let visible = application.visible(); let viewport = { let physical_size = window.inner_size(); @@ -43,7 +41,6 @@ impl State { mode, background_color, scale_factor, - visible, viewport, viewport_version: 0, // TODO: Encode cursor availability in the type-system @@ -185,6 +182,8 @@ impl State { new_mode, )); + window.set_visible(conversion::visible(new_mode)); + self.mode = new_mode; } @@ -204,14 +203,5 @@ impl State { self.scale_factor = new_scale_factor; } - - // Update window visibility - let new_visible = application.visible(); - - if self.visible != new_visible { - window.set_visible(new_visible); - - self.visible = new_visible; - } } } -- cgit From 9fc5ad23edca93553137100d167de7b69e88f785 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 5 Jul 2021 16:23:44 -0300 Subject: Initial menu implementation --- winit/src/application/state.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'winit/src/application') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index b54d3aed..2994080c 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -36,6 +36,8 @@ impl State { ) }; + window.set_menu(Some(conversion::menu(application.menu()))); + Self { title, mode, -- cgit From 31997d255f263a0f47f5af0d8560f3d5bd37f077 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 12 Jul 2021 22:28:18 +0200 Subject: Store and synchronize `Menu` in `application::State` --- winit/src/application/state.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'winit/src/application') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index 2994080c..f60f09be 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -1,5 +1,5 @@ use crate::conversion; -use crate::{Application, Color, Debug, Mode, Point, Size, Viewport}; +use crate::{Application, Color, Debug, Menu, Mode, Point, Size, Viewport}; use std::marker::PhantomData; use winit::event::{Touch, WindowEvent}; @@ -9,6 +9,7 @@ use winit::window::Window; #[derive(Debug, Clone)] pub struct State { title: String, + menu: Menu, mode: Mode, background_color: Color, scale_factor: f64, @@ -23,6 +24,7 @@ impl State { /// Creates a new [`State`] for the provided [`Application`] and window. pub fn new(application: &A, window: &Window) -> Self { let title = application.title(); + let menu = application.menu(); let mode = application.mode(); let background_color = application.background_color(); let scale_factor = application.scale_factor(); @@ -36,10 +38,9 @@ impl State { ) }; - window.set_menu(Some(conversion::menu(application.menu()))); - Self { title, + menu, mode, background_color, scale_factor, @@ -52,6 +53,11 @@ impl State { } } + /// Returns the current [`Menu`] of the [`State`]. + pub fn menu(&self) -> &Menu { + &self.menu + } + /// Returns the current background [`Color`] of the [`State`]. pub fn background_color(&self) -> Color { self.background_color @@ -205,5 +211,14 @@ impl State { self.scale_factor = new_scale_factor; } + + // Update menu + let new_menu = application.menu(); + + if self.menu != new_menu { + window.set_menu(Some(conversion::menu(&new_menu))); + + self.menu = new_menu; + } } } -- cgit