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);
|
toplevel_enter_workspace(window, to);
|
||||||
|
|
||||||
// we can't restore to a given position
|
// 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();
|
state.state.take();
|
||||||
}
|
}
|
||||||
// update fullscreen state to restore to the new workspace
|
// update fullscreen state to restore to the new workspace
|
||||||
|
|
@ -3278,7 +3278,7 @@ impl Shell {
|
||||||
if is_minimized {
|
if is_minimized {
|
||||||
let to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
|
let to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
|
||||||
let minimized_window = match window_state {
|
let minimized_window = match window_state {
|
||||||
WorkspaceRestoreData::Floating(Some(previous)) => {
|
WorkspaceRestoreData::Floating(previous) => {
|
||||||
let window = CosmicMapped::from(CosmicWindow::new(
|
let window = CosmicMapped::from(CosmicWindow::new(
|
||||||
window.clone(),
|
window.clone(),
|
||||||
evlh.clone(),
|
evlh.clone(),
|
||||||
|
|
@ -3288,7 +3288,7 @@ impl Shell {
|
||||||
window.set_minimized(true);
|
window.set_minimized(true);
|
||||||
MinimizedWindow::Floating { window, previous }
|
MinimizedWindow::Floating { window, previous }
|
||||||
}
|
}
|
||||||
WorkspaceRestoreData::Tiling(Some(previous)) => {
|
WorkspaceRestoreData::Tiling(previous) => {
|
||||||
let window = CosmicMapped::from(CosmicWindow::new(
|
let window = CosmicMapped::from(CosmicWindow::new(
|
||||||
window.clone(),
|
window.clone(),
|
||||||
evlh.clone(),
|
evlh.clone(),
|
||||||
|
|
@ -3355,7 +3355,7 @@ impl Shell {
|
||||||
self.appearance_conf,
|
self.appearance_conf,
|
||||||
));
|
));
|
||||||
let position = match window_state {
|
let position = match window_state {
|
||||||
WorkspaceRestoreData::Floating(Some(data)) => Some(
|
WorkspaceRestoreData::Floating(data) => Some(
|
||||||
data.position_relative(to_workspace.output.geometry().size.as_logical()),
|
data.position_relative(to_workspace.output.geometry().size.as_logical()),
|
||||||
),
|
),
|
||||||
_ => None,
|
_ => None,
|
||||||
|
|
@ -3455,7 +3455,7 @@ impl Shell {
|
||||||
let to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
|
let to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
|
||||||
if !to_workspace.tiling_enabled {
|
if !to_workspace.tiling_enabled {
|
||||||
let (position, was_maximized, was_snapped) = match &window_state {
|
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())),
|
Some(data.position_relative(to_workspace.output.geometry().size.as_logical())),
|
||||||
data.was_maximized,
|
data.was_maximized,
|
||||||
data.was_snapped,
|
data.was_snapped,
|
||||||
|
|
@ -4883,15 +4883,15 @@ impl Shell {
|
||||||
&seat,
|
&seat,
|
||||||
match state {
|
match state {
|
||||||
WorkspaceRestoreData::Floating(floating_state) => {
|
WorkspaceRestoreData::Floating(floating_state) => {
|
||||||
floating_state.map(|state| FullscreenRestoreState::Floating {
|
Some(FullscreenRestoreState::Floating {
|
||||||
workspace: handle,
|
workspace: handle,
|
||||||
state,
|
state: floating_state,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
WorkspaceRestoreData::Tiling(tiling_state) => {
|
WorkspaceRestoreData::Tiling(tiling_state) => {
|
||||||
tiling_state.map(|state| FullscreenRestoreState::Tiling {
|
Some(FullscreenRestoreState::Tiling {
|
||||||
workspace: handle,
|
workspace: handle,
|
||||||
state,
|
state: tiling_state,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
WorkspaceRestoreData::Stack(stack_state) => {
|
WorkspaceRestoreData::Stack(stack_state) => {
|
||||||
|
|
|
||||||
|
|
@ -282,8 +282,8 @@ impl FullscreenRestoreState {
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum WorkspaceRestoreData {
|
pub enum WorkspaceRestoreData {
|
||||||
Fullscreen(Option<FullscreenRestoreData>),
|
Fullscreen(Option<FullscreenRestoreData>),
|
||||||
Tiling(Option<TilingRestoreData>),
|
Tiling(TilingRestoreData),
|
||||||
Floating(Option<FloatingRestoreData>),
|
Floating(FloatingRestoreData),
|
||||||
Stack(StackRestoreData),
|
Stack(StackRestoreData),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -643,32 +643,30 @@ impl Workspace {
|
||||||
mapped.set_minimized(false);
|
mapped.set_minimized(false);
|
||||||
return Some(match state {
|
return Some(match state {
|
||||||
MinimizedWindow::Floating { previous, .. } => {
|
MinimizedWindow::Floating { previous, .. } => {
|
||||||
WorkspaceRestoreData::Floating(Some(previous))
|
WorkspaceRestoreData::Floating(previous)
|
||||||
}
|
|
||||||
MinimizedWindow::Tiling { previous, .. } => {
|
|
||||||
WorkspaceRestoreData::Tiling(Some(previous))
|
|
||||||
}
|
}
|
||||||
|
MinimizedWindow::Tiling { previous, .. } => WorkspaceRestoreData::Tiling(previous),
|
||||||
MinimizedWindow::Fullscreen { .. } => unreachable!(),
|
MinimizedWindow::Fullscreen { .. } => unreachable!(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Ok(state) = self.tiling_layer.unmap(mapped, None) {
|
if let Ok(state) = self.tiling_layer.unmap(mapped, None) {
|
||||||
return Some(WorkspaceRestoreData::Tiling(Some(TilingRestoreData {
|
return Some(WorkspaceRestoreData::Tiling(TilingRestoreData {
|
||||||
state,
|
state,
|
||||||
was_maximized: was_maximized.is_some(),
|
was_maximized: was_maximized.is_some(),
|
||||||
})));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
let was_snapped = *mapped.floating_tiled.lock().unwrap();
|
let was_snapped = *mapped.floating_tiled.lock().unwrap();
|
||||||
// unmaximize_request might have triggered a `floating_layer.refresh()`,
|
// unmaximize_request might have triggered a `floating_layer.refresh()`,
|
||||||
// which may have already removed a non-alive surface.
|
// which may have already removed a non-alive surface.
|
||||||
if let Some(floating_geometry) = self.floating_layer.unmap(mapped, None).or(was_maximized) {
|
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,
|
geometry: floating_geometry,
|
||||||
output_size: self.output.geometry().size.as_logical(),
|
output_size: self.output.geometry().size.as_logical(),
|
||||||
was_maximized: was_maximized.is_some(),
|
was_maximized: was_maximized.is_some(),
|
||||||
was_snapped,
|
was_snapped,
|
||||||
})));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
None
|
None
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue