call map.arrange as often as possible, ensuring shell surfaces are always at the correct size
This commit is contained in:
parent
fd695ef232
commit
4f1a13f11f
3 changed files with 10 additions and 7 deletions
2
smithay
2
smithay
|
|
@ -1 +1 @@
|
||||||
Subproject commit cb1eb2a3f48d95a7ea4b030159a2512ba667a2fb
|
Subproject commit 3021f619e2ae4dab8bfb1e21f3f210923b9b6582
|
||||||
|
|
@ -8,9 +8,10 @@ use smithay::{
|
||||||
wayland::{
|
wayland::{
|
||||||
buffer::BufferHandler,
|
buffer::BufferHandler,
|
||||||
compositor::{
|
compositor::{
|
||||||
get_parent, is_sync_subsurface, CompositorClientState, CompositorHandler,
|
get_parent, is_sync_subsurface, with_states, CompositorClientState, CompositorHandler,
|
||||||
CompositorState,
|
CompositorState,
|
||||||
},
|
},
|
||||||
|
shell::xdg::XdgToplevelSurfaceData,
|
||||||
shm::{ShmHandler, ShmState},
|
shm::{ShmHandler, ShmState},
|
||||||
},
|
},
|
||||||
xwayland::XWaylandClientData,
|
xwayland::XWaylandClientData,
|
||||||
|
|
@ -43,10 +44,11 @@ impl CompositorHandler for State {
|
||||||
.find(|w| w.window.toplevel().unwrap().wl_surface() == &root)
|
.find(|w| w.window.toplevel().unwrap().wl_surface() == &root)
|
||||||
{
|
{
|
||||||
window.window.on_commit();
|
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);
|
// resize_grab::handle_commit(&mut self.space, surface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -422,9 +422,6 @@ impl State {
|
||||||
damage_tracker: &mut OutputDamageTracker,
|
damage_tracker: &mut OutputDamageTracker,
|
||||||
) -> Result<(), Box<dyn std::error::Error>> {
|
) -> Result<(), Box<dyn std::error::Error>> {
|
||||||
self.space.elements().for_each(|window| {
|
self.space.elements().for_each(|window| {
|
||||||
if let Some(toplevel) = window.window.toplevel() {
|
|
||||||
toplevel.send_pending_configure();
|
|
||||||
}
|
|
||||||
window.window.send_frame(
|
window.window.send_frame(
|
||||||
&output,
|
&output,
|
||||||
self.start_time.elapsed(),
|
self.start_time.elapsed(),
|
||||||
|
|
@ -432,8 +429,12 @@ impl State {
|
||||||
|_, _| Some(output.clone()),
|
|_, _| Some(output.clone()),
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
self.space.outputs().for_each(|output| {
|
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.layer_surface().send_pending_configure();
|
||||||
layer.send_frame(
|
layer.send_frame(
|
||||||
&output,
|
&output,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue