Skip to content

Commit

Permalink
Merge pull request #2505 from iced-rs/window-resize-events
Browse files Browse the repository at this point in the history
Add `resize_events` subscription to `window` module
  • Loading branch information
hecrj authored Jul 13, 2024
2 parents 1eabd38 + a108b2e commit a3d9cf2
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 15 deletions.
14 changes: 2 additions & 12 deletions core/src/window/event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,10 @@ pub enum Event {
Closed,

/// A window was moved.
Moved {
/// The new logical x location of the window
x: i32,
/// The new logical y location of the window
y: i32,
},
Moved(Point),

/// A window was resized.
Resized {
/// The new logical width of the window
width: u32,
/// The new logical height of the window
height: u32,
},
Resized(Size),

/// A window redraw was requested.
///
Expand Down
11 changes: 11 additions & 0 deletions runtime/src/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,17 @@ pub fn close_events() -> Subscription<Id> {
})
}

/// Subscribes to all [`Event::Resized`] occurrences in the running application.
pub fn resize_events() -> Subscription<(Id, Size)> {
event::listen_with(|event, _status, id| {
if let crate::core::Event::Window(Event::Resized(size)) = event {
Some((id, size))
} else {
None
}
})
}

/// Subscribes to all [`Event::CloseRequested`] occurences in the running application.
pub fn close_requests() -> Subscription<Id> {
event::listen_with(|event, _status, id| {
Expand Down
6 changes: 3 additions & 3 deletions winit/src/conversion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,10 @@ pub fn window_event(
WindowEvent::Resized(new_size) => {
let logical_size = new_size.to_logical(scale_factor);

Some(Event::Window(window::Event::Resized {
Some(Event::Window(window::Event::Resized(Size {
width: logical_size.width,
height: logical_size.height,
}))
})))
}
WindowEvent::CloseRequested => {
Some(Event::Window(window::Event::CloseRequested))
Expand Down Expand Up @@ -277,7 +277,7 @@ pub fn window_event(
let winit::dpi::LogicalPosition { x, y } =
position.to_logical(scale_factor);

Some(Event::Window(window::Event::Moved { x, y }))
Some(Event::Window(window::Event::Moved(Point::new(x, y))))
}
_ => None,
}
Expand Down

0 comments on commit a3d9cf2

Please sign in to comment.