summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar tsuza <zabaniya101@gmail.com>2024-10-16 18:17:10 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2025-01-16 11:17:00 +0000
commite3f149d9323742183e239e0958bc0d85212acf0f (patch)
treeb67a7184ac8eb0bb89e5410025a7d83d6985abf7 /winit
parenta00f564deed291765a35311784096193dc3988b3 (diff)
downloadiced-e3f149d9323742183e239e0958bc0d85212acf0f.tar.gz
iced-e3f149d9323742183e239e0958bc0d85212acf0f.tar.bz2
iced-e3f149d9323742183e239e0958bc0d85212acf0f.zip
feat: add a window drag resize task
Diffstat (limited to 'winit')
-rw-r--r--winit/src/conversion.rs28
-rw-r--r--winit/src/program.rs7
2 files changed, 34 insertions, 1 deletions
diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs
index 01c6abc8..538ac4d2 100644
--- a/winit/src/conversion.rs
+++ b/winit/src/conversion.rs
@@ -1120,7 +1120,7 @@ pub fn native_key_code(
}
}
-/// Converts some [`UserAttention`] into it's `winit` counterpart.
+/// Converts some [`UserAttention`] into its `winit` counterpart.
///
/// [`UserAttention`]: window::UserAttention
pub fn user_attention(
@@ -1136,6 +1136,32 @@ pub fn user_attention(
}
}
+/// Converts some [`ResizeDirection`] into its `winit` counterpart.
+///
+/// [`ResizeDirection`]: window::ResizeDirection
+pub fn resize_direction(
+ resize_direction: window::Direction,
+) -> winit::window::ResizeDirection {
+ match resize_direction {
+ window::Direction::North => winit::window::ResizeDirection::North,
+ window::Direction::South => winit::window::ResizeDirection::South,
+ window::Direction::East => winit::window::ResizeDirection::East,
+ window::Direction::West => winit::window::ResizeDirection::West,
+ window::Direction::NorthEast => {
+ winit::window::ResizeDirection::NorthEast
+ }
+ window::Direction::NorthWest => {
+ winit::window::ResizeDirection::NorthWest
+ }
+ window::Direction::SouthEast => {
+ winit::window::ResizeDirection::SouthEast
+ }
+ window::Direction::SouthWest => {
+ winit::window::ResizeDirection::SouthWest
+ }
+ }
+}
+
/// Converts some [`window::Icon`] into it's `winit` counterpart.
///
/// Returns `None` if there is an error during the conversion.
diff --git a/winit/src/program.rs b/winit/src/program.rs
index dddaf33d..5387e5e5 100644
--- a/winit/src/program.rs
+++ b/winit/src/program.rs
@@ -1265,6 +1265,13 @@ fn run_action<P, C>(
let _ = window.raw.drag_window();
}
}
+ window::Action::DragResize(id, direction) => {
+ if let Some(window) = window_manager.get_mut(id) {
+ let _ = window.raw.drag_resize_window(
+ conversion::resize_direction(direction),
+ );
+ }
+ }
window::Action::Resize(id, size) => {
if let Some(window) = window_manager.get_mut(id) {
let _ = window.raw.request_inner_size(