From d899bc4712a0542435c950a0644aa42f0bb34557 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sun, 14 Jan 2024 09:22:45 +0400 Subject: Revert "Be more insistent on CSD by default" This reverts commit 43e2cf14d2994299298b05fc194110e875aeecf4. SDL2 until very recently (unreleased version) has had a bug where changing the decoration mode to client-side during its initial window creation would keep the window permanently hidden. Breaking all SDL2 apps for years to come is unfortunately not a good solution. --- src/handlers/xdg_shell.rs | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs index 9097861c..cc3b7429 100644 --- a/src/handlers/xdg_shell.rs +++ b/src/handlers/xdg_shell.rs @@ -278,25 +278,16 @@ delegate_xdg_shell!(State); impl XdgDecorationHandler for State { fn new_decoration(&mut self, toplevel: ToplevelSurface) { let mode = if self.niri.config.borrow().prefer_no_csd { - zxdg_toplevel_decoration_v1::Mode::ServerSide + Some(zxdg_toplevel_decoration_v1::Mode::ServerSide) } else { - zxdg_toplevel_decoration_v1::Mode::ClientSide + None }; toplevel.with_pending_state(|state| { - state.decoration_mode = Some(mode); + state.decoration_mode = mode; }); } - fn request_mode( - &mut self, - toplevel: ToplevelSurface, - mut mode: zxdg_toplevel_decoration_v1::Mode, - ) { - // If prefer-no-csd is unset, then insist on CSD. - if !self.niri.config.borrow().prefer_no_csd { - mode = zxdg_toplevel_decoration_v1::Mode::ClientSide; - } - + fn request_mode(&mut self, toplevel: ToplevelSurface, mode: zxdg_toplevel_decoration_v1::Mode) { toplevel.with_pending_state(|state| { state.decoration_mode = Some(mode); }); @@ -310,12 +301,12 @@ impl XdgDecorationHandler for State { fn unset_mode(&mut self, toplevel: ToplevelSurface) { let mode = if self.niri.config.borrow().prefer_no_csd { - zxdg_toplevel_decoration_v1::Mode::ServerSide + Some(zxdg_toplevel_decoration_v1::Mode::ServerSide) } else { - zxdg_toplevel_decoration_v1::Mode::ClientSide + None }; toplevel.with_pending_state(|state| { - state.decoration_mode = Some(mode); + state.decoration_mode = mode; }); // A configure is required in response to this event. However, if an initial configure -- cgit