From b54acf503f003e9a1530596e305d1e325c14330a Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 29 Sep 2023 13:54:47 +0400 Subject: Avoid unnecessary configures for xdg-decoration They actually break some clients like Tracy for some unknown to me reason. --- src/handlers/xdg_shell.rs | 13 ++++++++++--- 1 file 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); -- cgit