diff --git a/smithay b/smithay index cb1eb2a..3021f61 160000 --- a/smithay +++ b/smithay @@ -1 +1 @@ -Subproject commit cb1eb2a3f48d95a7ea4b030159a2512ba667a2fb +Subproject commit 3021f619e2ae4dab8bfb1e21f3f210923b9b6582 diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs index 00780d0..204ee81 100644 --- a/src/handlers/compositor.rs +++ b/src/handlers/compositor.rs @@ -8,9 +8,10 @@ use smithay::{ wayland::{ buffer::BufferHandler, compositor::{ - get_parent, is_sync_subsurface, CompositorClientState, CompositorHandler, + get_parent, is_sync_subsurface, with_states, CompositorClientState, CompositorHandler, CompositorState, }, + shell::xdg::XdgToplevelSurfaceData, shm::{ShmHandler, ShmState}, }, xwayland::XWaylandClientData, @@ -43,10 +44,11 @@ impl CompositorHandler for State { .find(|w| w.window.toplevel().unwrap().wl_surface() == &root) { window.window.on_commit(); + + window.window.toplevel().unwrap().send_pending_configure(); } }; - // xdg_shell::handle_commit(&mut self.popups, &self.space, surface); // resize_grab::handle_commit(&mut self.space, surface); } } diff --git a/src/render.rs b/src/render.rs index 03ad58d..40ba75c 100644 --- a/src/render.rs +++ b/src/render.rs @@ -422,9 +422,6 @@ impl State { damage_tracker: &mut OutputDamageTracker, ) -> Result<(), Box> { self.space.elements().for_each(|window| { - if let Some(toplevel) = window.window.toplevel() { - toplevel.send_pending_configure(); - } window.window.send_frame( &output, self.start_time.elapsed(), @@ -432,8 +429,12 @@ impl State { |_, _| Some(output.clone()), ) }); + self.space.outputs().for_each(|output| { - layer_map_for_output(output).layers().for_each(|layer| { + let mut map = layer_map_for_output(output); + map.arrange(); + + map.layers().for_each(|layer| { layer.layer_surface().send_pending_configure(); layer.send_frame( &output,