diff --git a/crates/gpui/src/platform/linux/x11/window.rs b/crates/gpui/src/platform/linux/x11/window.rs index f5e7243212f6f0d003a74ceaad1caac74d75f22e..8e439e9e3acdfbdf8b2954181dda013011ab7843 100644 --- a/crates/gpui/src/platform/linux/x11/window.rs +++ b/crates/gpui/src/platform/linux/x11/window.rs @@ -1240,7 +1240,9 @@ impl PlatformWindow for X11Window { match state.decorations { WindowDecorations::Server => Decorations::Server, WindowDecorations::Client => { - let tiling = if let Some(edge_constraints) = &state.edge_constraints { + let tiling = if state.fullscreen { + Tiling::tiled() + } else if let Some(edge_constraints) = &state.edge_constraints { edge_constraints.to_tiling() } else { // https://source.chromium.org/chromium/chromium/src/+/main:ui/ozone/platform/x11/x11_window.cc;l=2519;drc=1f14cc876cc5bf899d13284a12c451498219bb2d @@ -1251,7 +1253,6 @@ impl PlatformWindow for X11Window { right: state.maximized_horizontal, } }; - Decorations::Client { tiling } } } @@ -1262,7 +1263,9 @@ impl PlatformWindow for X11Window { let dp = (inset.0 * state.scale_factor) as u32; - let insets = if let Some(edge_constraints) = &state.edge_constraints { + let insets = if state.fullscreen { + [0, 0, 0, 0] + } else if let Some(edge_constraints) = &state.edge_constraints { let left = if edge_constraints.left_tiled { 0 } else { dp }; let top = if edge_constraints.top_tiled { 0 } else { dp }; let right = if edge_constraints.right_tiled { 0 } else { dp }; diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index ba8476fbb4aaa92ec0fa9b8f9ffdc65762513143..7d424dcce2a5909a0bfe09ceb761b27ecd1b1f63 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -6658,7 +6658,7 @@ fn resize_edge( let corner_size = size(shadow_size * 1.5, shadow_size * 1.5); let top_left_bounds = Bounds::new(Point::new(px(0.), px(0.)), corner_size); - if top_left_bounds.contains(&pos) { + if !tiling.top && top_left_bounds.contains(&pos) { return Some(ResizeEdge::TopLeft); } @@ -6666,7 +6666,7 @@ fn resize_edge( Point::new(window_size.width - corner_size.width, px(0.)), corner_size, ); - if top_right_bounds.contains(&pos) { + if !tiling.top && top_right_bounds.contains(&pos) { return Some(ResizeEdge::TopRight); } @@ -6674,7 +6674,7 @@ fn resize_edge( Point::new(px(0.), window_size.height - corner_size.height), corner_size, ); - if bottom_left_bounds.contains(&pos) { + if !tiling.bottom && bottom_left_bounds.contains(&pos) { return Some(ResizeEdge::BottomLeft); } @@ -6685,7 +6685,7 @@ fn resize_edge( ), corner_size, ); - if bottom_right_bounds.contains(&pos) { + if !tiling.bottom && bottom_right_bounds.contains(&pos) { return Some(ResizeEdge::BottomRight); }