From 90e9f56f79a19dfc765b23843fd10fe39ef1abc0 Mon Sep 17 00:00:00 2001 From: Julian Sparber Date: Mon, 19 Feb 2024 15:15:48 +0100 Subject: [PATCH] shell/global: Don't force active workspace for launch context Since the launch context may also be used to activate an action on an running application with an already existing window, which we don't necessarily want to move to a different workspace, don't set a workspace for the launch context. If no active window exists for an application then it will be place on the currently active workspace anyways. Part-of: --- src/shell-global.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/shell-global.c b/src/shell-global.c index c8ad62690..c2589fda8 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -1439,10 +1439,10 @@ shell_global_app_launched_cb (GAppLaunchContext *context, * shell_global_create_app_launch_context: * @global: A #ShellGlobal * @timestamp: the timestamp for the launch (or 0 for current time) - * @workspace: a workspace index, or -1 to indicate the current one + * @workspace: a workspace index, or -1 to indicate no specific one * * Create a #GAppLaunchContext set up with the correct timestamp, and - * targeted to activate on the current workspace. + * targeted to activate on @workspace. * * Return value: (transfer full): A new #GAppLaunchContext */ @@ -1463,12 +1463,11 @@ shell_global_create_app_launch_context (ShellGlobal *global, timestamp = shell_global_get_current_time (global); meta_launch_context_set_timestamp (context, timestamp); - if (workspace < 0) - ws = meta_workspace_manager_get_active_workspace (workspace_manager); - else - ws = meta_workspace_manager_get_workspace_by_index (workspace_manager, workspace); - - meta_launch_context_set_workspace (context, ws); + if (workspace > -1) + { + ws = meta_workspace_manager_get_workspace_by_index (workspace_manager, workspace); + meta_launch_context_set_workspace (context, ws); + } g_signal_connect (context, "launched",