diff --git a/src/shell/grabs.rs b/src/shell/grabs.rs index 60541ac5..668ffd39 100644 --- a/src/shell/grabs.rs +++ b/src/shell/grabs.rs @@ -30,6 +30,25 @@ bitflags::bitflags! { } } +impl ResizeEdge { + pub fn flip_direction(&mut self) { + let mut new_edge = ResizeEdge::empty(); + if self.contains(ResizeEdge::TOP) { + new_edge.insert(ResizeEdge::BOTTOM); + } + if self.contains(ResizeEdge::BOTTOM) { + new_edge.insert(ResizeEdge::TOP); + } + if self.contains(ResizeEdge::LEFT) { + new_edge.insert(ResizeEdge::RIGHT); + } + if self.contains(ResizeEdge::RIGHT) { + new_edge.insert(ResizeEdge::LEFT); + } + *self = new_edge; + } +} + impl From for ResizeEdge { #[inline] fn from(x: xdg_toplevel::ResizeEdge) -> Self {