worspace: Add partial window bound fix when switching between CSD and SSD on Wayland (#31335)
Partial fix for #31330 It fix the problem that the inset stay on after switching to SSD, but it still have the problem that after that first redraw, it have the wrong size. Just resizing it even once work. I guess the relevant code to fix that would be ``handle_toplevel_decoration_event`` of ``crates/gpui/src/platform/linux/wayland/window.rs``, but trying to call resize here does not seems to work correctly (might be just wrong argument), and I would like to take a break on that for now. Release Notes: - N/A (better wait for that to be completely fixed before adding it in the changelog) --------- Co-authored-by: Michael Sloan <michael@zed.dev>
This commit is contained in:
parent
48c8555076
commit
968587a745
1 changed files with 4 additions and 2 deletions
|
@ -7561,6 +7561,7 @@ fn parse_pixel_size_env_var(value: &str) -> Option<Size<Pixels>> {
|
|||
Some(size(px(width as f32), px(height as f32)))
|
||||
}
|
||||
|
||||
/// Add client-side decorations (rounded corners, shadows, resize handling) when appropriate.
|
||||
pub fn client_side_decorations(
|
||||
element: impl IntoElement,
|
||||
window: &mut Window,
|
||||
|
@ -7569,8 +7570,9 @@ pub fn client_side_decorations(
|
|||
const BORDER_SIZE: Pixels = px(1.0);
|
||||
let decorations = window.window_decorations();
|
||||
|
||||
if matches!(decorations, Decorations::Client { .. }) {
|
||||
window.set_client_inset(theme::CLIENT_SIDE_DECORATION_SHADOW);
|
||||
match decorations {
|
||||
Decorations::Client { .. } => window.set_client_inset(theme::CLIENT_SIDE_DECORATION_SHADOW),
|
||||
Decorations::Server { .. } => window.set_client_inset(px(0.0)),
|
||||
}
|
||||
|
||||
struct GlobalResizeEdge(ResizeEdge);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue