feat: Add window drag support from winit

Exposes access to the winit window's window_drag method as an action.
This commit is contained in:
Michael Aaron Murphy 2022-10-06 20:38:21 +02:00
parent 77c838011f
commit 7ea7dbef57
No known key found for this signature in database
GPG key ID: B2732D4240C9212C
3 changed files with 16 additions and 0 deletions

View file

@ -5,6 +5,12 @@ use std::fmt;
/// An operation to be performed on some window.
pub enum Action<T> {
/// Moves the window with the left mouse button until the button is
/// released.
///
/// Theres no guarantee that this will work unless the left mouse
/// button was pressed immediately before this function is called.
Drag,
/// Resize the window.
Resize {
/// The new logical width of the window
@ -37,6 +43,7 @@ impl<T> Action<T> {
T: 'static,
{
match self {
Self::Drag => Action::Drag,
Self::Resize { width, height } => Action::Resize { width, height },
Self::Move { x, y } => Action::Move { x, y },
Self::SetMode(mode) => Action::SetMode(mode),
@ -48,6 +55,7 @@ impl<T> Action<T> {
impl<T> fmt::Debug for Action<T> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Drag => write!(f, "Action::Drag"),
Self::Resize { width, height } => write!(
f,
"Action::Resize {{ widget: {}, height: {} }}",