aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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.