Refactor double let else blocks to use as_mut

This commit is contained in:
En-En 2025-06-23 12:47:20 +00:00 committed by Supreeeme
parent 8dc4538662
commit 117af56a83
2 changed files with 15 additions and 27 deletions

View file

@ -455,16 +455,14 @@ impl Event for client::wl_pointer::Event {
let mut cmd = CommandBuffer::new(); let mut cmd = CommandBuffer::new();
let pending_enter = state.world.remove_one::<PendingEnter>(target).ok(); let pending_enter = state.world.remove_one::<PendingEnter>(target).ok();
let server = state.world.get::<&WlPointer>(target).unwrap(); let server = state.world.get::<&WlPointer>(target).unwrap();
let Some(mut query) = surface.data().copied().and_then(|e| { let mut query = surface.data().copied().and_then(|e| {
state state
.world .world
.query_one::<(&WlSurface, &SurfaceRole, &SurfaceScaleFactor, &x::Window)>(e) .query_one::<(&WlSurface, &SurfaceRole, &SurfaceScaleFactor, &x::Window)>(e)
.ok() .ok()
}) else { });
warn!("could not enter surface: stale surface"); let Some((surface, role, scale, window)) = query.as_mut().and_then(|q| q.get())
return; else {
};
let Some((surface, role, scale, window)) = query.get() else {
warn!("could not enter surface: stale surface"); warn!("could not enter surface: stale surface");
return; return;
}; };
@ -634,15 +632,13 @@ impl Event for client::wl_keyboard::Event {
surface, surface,
keys, keys,
} => { } => {
let Some(mut query) = surface.data().copied().and_then(|key| { let mut query = surface.data().copied().and_then(|key| {
state state
.world .world
.query_one::<(&x::Window, &WlSurface, Option<&OnOutput>)>(key) .query_one::<(&x::Window, &WlSurface, Option<&OnOutput>)>(key)
.ok() .ok()
}) else { });
return; let Some((window, surface, output)) = query.as_mut().and_then(|q| q.get()) else {
};
let Some((window, surface, output)) = query.get() else {
return; return;
}; };
state.last_kb_serial = Some(( state.last_kb_serial = Some((
@ -663,14 +659,11 @@ impl Event for client::wl_keyboard::Event {
if !surface.is_alive() { if !surface.is_alive() {
return; return;
} }
let Some(mut query) = surface let mut query = surface
.data() .data()
.copied() .copied()
.and_then(|key| state.world.query_one::<(&x::Window, &WlSurface)>(key).ok()) .and_then(|key| state.world.query_one::<(&x::Window, &WlSurface)>(key).ok());
else { let Some((window, surface)) = query.as_mut().and_then(|q| q.get()) else {
return;
};
let Some((window, surface)) = query.get() else {
return; return;
}; };
if state.to_focus.as_ref().map(|d| d.window) == Some(*window) { if state.to_focus.as_ref().map(|d| d.window) == Some(*window) {
@ -732,15 +725,13 @@ impl Event for client::wl_touch::Event {
} => { } => {
let mut cmd = CommandBuffer::new(); let mut cmd = CommandBuffer::new();
{ {
let Some(mut s_query) = surface.data().copied().and_then(|key| { let mut s_query = surface.data().copied().and_then(|key| {
state state
.world .world
.query_one::<(&WlSurface, &SurfaceScaleFactor)>(key) .query_one::<(&WlSurface, &SurfaceScaleFactor)>(key)
.ok() .ok()
}) else { });
return; let Some((s_surface, s_factor)) = s_query.as_mut().and_then(|q| q.get()) else {
};
let Some((s_surface, s_factor)) = s_query.get() else {
return; return;
}; };

View file

@ -727,19 +727,16 @@ impl<C: XConnection> ServerState<C> {
} }
pub fn reconfigure_window(&mut self, event: x::ConfigureNotifyEvent) { pub fn reconfigure_window(&mut self, event: x::ConfigureNotifyEvent) {
let Some(data) = self let Some((mut win, data)) = self
.windows .windows
.get(&event.window()) .get(&event.window())
.copied() .copied()
.and_then(|id| self.world.entity(id).ok()) .and_then(|id| self.world.entity(id).ok())
.and_then(|d| Some((d.get::<&mut WindowData>()?, d)))
else { else {
debug!("not reconfiguring unknown window {:?}", event.window()); debug!("not reconfiguring unknown window {:?}", event.window());
return; return;
}; };
let Some(mut win) = data.get::<&mut WindowData>() else {
debug!("not reconfiguring unknown window {:?}", event.window());
return;
};
let dims = WindowDims { let dims = WindowDims {
x: event.x(), x: event.x(),