From 0a6f2726cb0da24b535da5d0cd125c2574528799 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Thu, 20 Feb 2025 10:29:23 -0800 Subject: [PATCH] protocol/toplevel_management: Use `WorkspaceHandle` in argument Already depends on `WorkspaceHandler`, so it can get the handle, and toplevel info uses `WorkspaceHandle`s. --- src/wayland/handlers/toplevel_management.rs | 8 ++----- src/wayland/protocols/toplevel_management.rs | 22 ++++++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/wayland/handlers/toplevel_management.rs b/src/wayland/handlers/toplevel_management.rs index 432a76bd..25936219 100644 --- a/src/wayland/handlers/toplevel_management.rs +++ b/src/wayland/handlers/toplevel_management.rs @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0-only -use cosmic_protocols::workspace::v1::server::zcosmic_workspace_handle_v1::ZcosmicWorkspaceHandleV1; use smithay::{ desktop::{layer_map_for_output, WindowSurfaceType}, input::{pointer::MotionEvent, Seat}, @@ -18,6 +17,7 @@ use crate::{ delegate_toplevel_management, toplevel_rectangle_for, ManagementWindow, ToplevelManagementHandler, ToplevelManagementState, }, + workspace::WorkspaceHandle, }, }; @@ -101,13 +101,9 @@ impl ToplevelManagementHandler for State { &mut self, _dh: &DisplayHandle, window: &::Window, - workspace: ZcosmicWorkspaceHandleV1, + to_handle: WorkspaceHandle, _output: Output, ) { - let Some(to_handle) = self.common.workspace_state.get_workspace_handle(&workspace) else { - return; - }; - let mut shell = self.common.shell.write().unwrap(); if let Some(mut mapped) = shell.element_for_surface(window).cloned() { if let Some(from_workspace) = shell.space_for_mut(&mapped) { diff --git a/src/wayland/protocols/toplevel_management.rs b/src/wayland/protocols/toplevel_management.rs index 16acb517..0304d12b 100644 --- a/src/wayland/protocols/toplevel_management.rs +++ b/src/wayland/protocols/toplevel_management.rs @@ -12,14 +12,14 @@ use smithay::{ }; pub use cosmic_protocols::toplevel_management::v1::server::zcosmic_toplevel_manager_v1::ZcosmicToplelevelManagementCapabilitiesV1 as ManagementCapabilities; -use cosmic_protocols::{ - toplevel_management::v1::server::zcosmic_toplevel_manager_v1::{ - self, ZcosmicToplevelManagerV1, - }, - workspace::v1::server::zcosmic_workspace_handle_v1::ZcosmicWorkspaceHandleV1, +use cosmic_protocols::toplevel_management::v1::server::zcosmic_toplevel_manager_v1::{ + self, ZcosmicToplevelManagerV1, }; -use super::toplevel_info::{window_from_handle, ToplevelInfoHandler, ToplevelState, Window}; +use super::{ + toplevel_info::{window_from_handle, ToplevelInfoHandler, ToplevelState, Window}, + workspace::WorkspaceHandle, +}; #[derive(Debug)] pub struct ToplevelManagementState { @@ -68,7 +68,7 @@ where &mut self, dh: &DisplayHandle, window: &::Window, - workspace: ZcosmicWorkspaceHandleV1, + workspace: WorkspaceHandle, output: Output, ) { } @@ -255,8 +255,12 @@ where output, } => { let window = window_from_handle(toplevel).unwrap(); - if let Some(output) = Output::from_resource(&output) { - state.move_to_workspace(dh, &window, workspace, output); + if let Some(workspace_handle) = + state.workspace_state().get_workspace_handle(&workspace) + { + if let Some(output) = Output::from_resource(&output) { + state.move_to_workspace(dh, &window, workspace_handle, output); + } } } _ => unreachable!(),