Skip to content

Commit

Permalink
Be more insistent on CSD by default
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
YaLTeR committed Jan 7, 2024
1 parent 2c59131 commit 43e2cf1
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions src/handlers/xdg_shell.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
});
Expand All @@ -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.
Expand Down

0 comments on commit 43e2cf1

Please sign in to comment.