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:
parent
9e6d46c17e
commit
5c0c22988e
2 changed files with 17 additions and 19 deletions
|
|
@ -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) => {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue