aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-01-07 09:41:56 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-01-07 09:41:56 +0400
commit43e2cf14d2994299298b05fc194110e875aeecf4 (patch)
treeb47cfcd15378fb4b2fdf88f13a8ccfd028236bcc
parent2c59131f7f61af8ca1b782321804126e2e5098f6 (diff)
downloadniri-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.rs23
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.