diff options
| -rw-r--r-- | src/handlers/xdg_shell.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs index 252ca0ac..38fe3c9a 100644 --- a/src/handlers/xdg_shell.rs +++ b/src/handlers/xdg_shell.rs @@ -178,14 +178,17 @@ impl XdgDecorationHandler for State { toplevel.with_pending_state(|state| { state.decoration_mode = mode; }); - toplevel.send_configure(); } fn request_mode(&mut self, toplevel: ToplevelSurface, mode: zxdg_toplevel_decoration_v1::Mode) { toplevel.with_pending_state(|state| { state.decoration_mode = Some(mode); }); - toplevel.send_configure(); + + // Only send configure if it's non-initial. + if initial_configure_sent(&toplevel) { + toplevel.send_pending_configure(); + } } fn unset_mode(&mut self, toplevel: ToplevelSurface) { @@ -197,7 +200,11 @@ impl XdgDecorationHandler for State { toplevel.with_pending_state(|state| { state.decoration_mode = mode; }); - toplevel.send_configure(); + + // Only send configure if it's non-initial. + if initial_configure_sent(&toplevel) { + toplevel.send_pending_configure(); + } } } delegate_xdg_decoration!(State); |
