Don't unnecessarily use Option in WorkspaceRestoreData

Unless we expect to need this again in the future, it's best not to have
an `Option` here unnecessarily.
This commit is contained in:
Ian Douglas Scott 2026-06-23 14:49:11 -07:00 committed by Ian Douglas Scott
parent 9e6d46c17e
commit 5c0c22988e
2 changed files with 17 additions and 19 deletions

View file

@ -3251,7 +3251,7 @@ impl Shell {
toplevel_enter_workspace(window, to);
// we can't restore to a given position
if let WorkspaceRestoreData::Tiling(Some(state)) = &mut window_state {
if let WorkspaceRestoreData::Tiling(state) = &mut window_state {
state.state.take();
}
// update fullscreen state to restore to the new workspace
@ -3278,7 +3278,7 @@ impl Shell {
if is_minimized {
let to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
let minimized_window = match window_state {
WorkspaceRestoreData::Floating(Some(previous)) => {
WorkspaceRestoreData::Floating(previous) => {
let window = CosmicMapped::from(CosmicWindow::new(
window.clone(),
evlh.clone(),
@ -3288,7 +3288,7 @@ impl Shell {
window.set_minimized(true);
MinimizedWindow::Floating { window, previous }
}
WorkspaceRestoreData::Tiling(Some(previous)) => {
WorkspaceRestoreData::Tiling(previous) => {
let window = CosmicMapped::from(CosmicWindow::new(
window.clone(),
evlh.clone(),
@ -3355,7 +3355,7 @@ impl Shell {
self.appearance_conf,
));
let position = match window_state {
WorkspaceRestoreData::Floating(Some(data)) => Some(
WorkspaceRestoreData::Floating(data) => Some(
data.position_relative(to_workspace.output.geometry().size.as_logical()),
),
_ => None,
@ -3455,7 +3455,7 @@ impl Shell {
let to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
if !to_workspace.tiling_enabled {
let (position, was_maximized, was_snapped) = match &window_state {
WorkspaceRestoreData::Floating(Some(data)) => (
WorkspaceRestoreData::Floating(data) => (
Some(data.position_relative(to_workspace.output.geometry().size.as_logical())),
data.was_maximized,
data.was_snapped,
@ -4883,15 +4883,15 @@ impl Shell {
&seat,
match state {
WorkspaceRestoreData::Floating(floating_state) => {
floating_state.map(|state| FullscreenRestoreState::Floating {
Some(FullscreenRestoreState::Floating {
workspace: handle,
state,
state: floating_state,
})
}
WorkspaceRestoreData::Tiling(tiling_state) => {
tiling_state.map(|state| FullscreenRestoreState::Tiling {
Some(FullscreenRestoreState::Tiling {
workspace: handle,
state,
state: tiling_state,
})
}
WorkspaceRestoreData::Stack(stack_state) => {

View file

@ -282,8 +282,8 @@ impl FullscreenRestoreState {
#[derive(Debug, Clone)]
pub enum WorkspaceRestoreData {
Fullscreen(Option<FullscreenRestoreData>),
Tiling(Option<TilingRestoreData>),
Floating(Option<FloatingRestoreData>),
Tiling(TilingRestoreData),
Floating(FloatingRestoreData),
Stack(StackRestoreData),
}
@ -643,32 +643,30 @@ impl Workspace {
mapped.set_minimized(false);
return Some(match state {
MinimizedWindow::Floating { previous, .. } => {
WorkspaceRestoreData::Floating(Some(previous))
}
MinimizedWindow::Tiling { previous, .. } => {
WorkspaceRestoreData::Tiling(Some(previous))
WorkspaceRestoreData::Floating(previous)
}
MinimizedWindow::Tiling { previous, .. } => WorkspaceRestoreData::Tiling(previous),
MinimizedWindow::Fullscreen { .. } => unreachable!(),
});
}
if let Ok(state) = self.tiling_layer.unmap(mapped, None) {
return Some(WorkspaceRestoreData::Tiling(Some(TilingRestoreData {
return Some(WorkspaceRestoreData::Tiling(TilingRestoreData {
state,
was_maximized: was_maximized.is_some(),
})));
}));
}
let was_snapped = *mapped.floating_tiled.lock().unwrap();
// unmaximize_request might have triggered a `floating_layer.refresh()`,
// which may have already removed a non-alive surface.
if let Some(floating_geometry) = self.floating_layer.unmap(mapped, None).or(was_maximized) {
return Some(WorkspaceRestoreData::Floating(Some(FloatingRestoreData {
return Some(WorkspaceRestoreData::Floating(FloatingRestoreData {
geometry: floating_geometry,
output_size: self.output.geometry().size.as_logical(),
was_maximized: was_maximized.is_some(),
was_snapped,
})));
}));
};
None