refactor: clean ECS queries to PendingSurfaceState

This commit is contained in:
En-En 2025-12-16 13:40:32 +00:00 committed by Supreeeme
parent b6fe8e87cf
commit 979eab242e
2 changed files with 7 additions and 14 deletions

View file

@ -273,7 +273,6 @@ impl SurfaceEvents {
target: Entity, target: Entity,
state: &mut ServerState<C>, state: &mut ServerState<C>,
) { ) {
let connection = &mut state.connection;
let state = &mut state.inner; let state = &mut state.inner;
let xdg_surface::Event::Configure { serial } = event else { let xdg_surface::Event::Configure { serial } = event else {
unreachable!(); unreachable!();

View file

@ -613,22 +613,16 @@ impl<C: XConnection> ServerState<C> {
event.handle(target, self); event.handle(target, self);
} }
let query = self let query = self.world.query_mut::<(&x::Window, &PendingSurfaceState)>();
.world let iter = query
.query_mut::<(&PendingSurfaceState,)>()
.into_iter() .into_iter()
.map(|(e, _)| e) .map(|(e, (win, dims))| (e, (*win, *dims)))
.collect::<Vec<_>>(); .collect::<Vec<_>>();
for entity in query { for (entity, (win, dims)) in iter.into_iter() {
let dims = self self.connection.set_window_dims(win, dims);
.world self.world
.remove_one::<PendingSurfaceState>(entity) .remove_one::<PendingSurfaceState>(entity)
.unwrap(); .unwrap();
let entity = self.world.entity(entity).unwrap();
let mut query = entity.query::<(&x::Window,)>();
let window = *query.get().unwrap().0;
drop(query);
self.connection.set_window_dims(window, dims);
} }
if self.global_offset_updated { if self.global_offset_updated {
@ -1534,7 +1528,7 @@ impl<S: X11Selection + 'static> InnerServerState<S> {
} }
} }
#[derive(Default, Debug)] #[derive(Default, Debug, Copy, Clone)]
pub struct PendingSurfaceState { pub struct PendingSurfaceState {
pub x: i32, pub x: i32,
pub y: i32, pub y: i32,