diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-01-07 09:41:56 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-01-07 09:41:56 +0400 |
| commit | 43e2cf14d2994299298b05fc194110e875aeecf4 (patch) | |
| tree | b47cfcd15378fb4b2fdf88f13a8ccfd028236bcc | |
| parent | 2c59131f7f61af8ca1b782321804126e2e5098f6 (diff) | |
| download | niri-43e2cf14d2994299298b05fc194110e875aeecf4.tar.gz niri-43e2cf14d2994299298b05fc194110e875aeecf4.tar.bz2 niri-43e2cf14d2994299298b05fc194110e875aeecf4.zip | |
Be more insistent on CSD by default
By default I want CSD so that people don't necessarily have to learn all
of the shortcuts right away, and can at least use the X to close
windows.
| -rw-r--r-- | src/handlers/xdg_shell.rs | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs index f99aa82b..3848b7e8 100644 --- a/src/handlers/xdg_shell.rs +++ b/src/handlers/xdg_shell.rs @@ -193,16 +193,25 @@ 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 { - Some(zxdg_toplevel_decoration_v1::Mode::ServerSide) + zxdg_toplevel_decoration_v1::Mode::ServerSide } else { - None + zxdg_toplevel_decoration_v1::Mode::ClientSide }; toplevel.with_pending_state(|state| { - state.decoration_mode = mode; + state.decoration_mode = Some(mode); }); } - fn request_mode(&mut self, toplevel: ToplevelSurface, mode: zxdg_toplevel_decoration_v1::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; + } + toplevel.with_pending_state(|state| { state.decoration_mode = Some(mode); }); @@ -215,12 +224,12 @@ impl XdgDecorationHandler for State { fn unset_mode(&mut self, toplevel: ToplevelSurface) { let mode = if self.niri.config.borrow().prefer_no_csd { - Some(zxdg_toplevel_decoration_v1::Mode::ServerSide) + zxdg_toplevel_decoration_v1::Mode::ServerSide } else { - None + zxdg_toplevel_decoration_v1::Mode::ClientSide }; toplevel.with_pending_state(|state| { - state.decoration_mode = mode; + state.decoration_mode = Some(mode); }); // Only send configure if it's non-initial. |
