shell/tiling: Add option to toggle orientation

This commit is contained in:
Victoria Brekenfeld 2022-10-26 15:42:45 +02:00
parent 01b34aadd2
commit 0c47631d9b
5 changed files with 25 additions and 5 deletions

View file

@ -16,6 +16,16 @@ pub enum Orientation {
Vertical,
}
impl std::ops::Not for Orientation {
type Output = Self;
fn not(self) -> Self::Output {
match self {
Orientation::Horizontal => Orientation::Vertical,
Orientation::Vertical => Orientation::Horizontal,
}
}
}
lazy_static::lazy_static! {
static ref EXCEPTIONS_APPID: RegexSet = RegexSet::new(&[
r"Authy Desktop",

View file

@ -570,7 +570,7 @@ impl TilingLayout {
pub fn update_orientation<'a>(
&mut self,
new_orientation: Orientation,
new_orientation: Option<Orientation>,
seat: &Seat<State>,
focus_stack: impl Iterator<Item = &'a CosmicMapped> + 'a,
) {
@ -589,6 +589,7 @@ impl TilingLayout {
Orientation::Horizontal => last_geometry.size.h,
Orientation::Vertical => last_geometry.size.w,
};
let new_orientation = new_orientation.unwrap_or(!*orientation);
let new_length = match new_orientation {
Orientation::Horizontal => last_geometry.size.h,
Orientation::Vertical => last_geometry.size.w,