diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-29 13:54:47 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-29 13:54:47 +0400 |
| commit | b54acf503f003e9a1530596e305d1e325c14330a (patch) | |
| tree | c4390d9b18992c57220d6bf076555be4fe076677 | |
| parent | c7057ca0d8f1af0296b19aac733adf874e285984 (diff) | |
| download | niri-b54acf503f003e9a1530596e305d1e325c14330a.tar.gz niri-b54acf503f003e9a1530596e305d1e325c14330a.tar.bz2 niri-b54acf503f003e9a1530596e305d1e325c14330a.zip | |
Avoid unnecessary configures for xdg-decoration
They actually break some clients like Tracy for some unknown to me
reason.
| -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); |
