summaryrefslogtreecommitdiff
path: root/src/window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.rs')
-rw-r--r--src/window.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/window.rs b/src/window.rs
index 70c9c02..f031af5 100644
--- a/src/window.rs
+++ b/src/window.rs
@@ -18,11 +18,21 @@ fn to_physical_size(dimensions: Dimensions, scale: u32) -> PhysicalSize<u32> {
}
+#[derive(Copy, Clone, Debug, PartialEq)]
+pub enum PointerState {
+ In,
+ Out,
+ PendingOut,
+}
+
+
pub(crate) struct PhosphorWindow {
pub winit: Rc<Window>,
pub program: Box<dyn WindowProgram>,
pub requests: EventQueue<Request>,
pub pointer: Option<Position>,
+ pub pointer_state: PointerState,
+ pub mouse_buttons: [bool; 5],
pub marked_for_destruction: bool,
pub size_bounds: SizeBounds, // logical dimensions
@@ -79,6 +89,8 @@ impl PhosphorWindow {
program: builder.program,
requests: EventQueue::new(),
pointer: None,
+ pointer_state: PointerState::Out,
+ mouse_buttons: [false; 5],
marked_for_destruction: false,
size_bounds,