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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3198>
This commit is contained in:
Julian Sparber 2024-02-19 15:15:48 +01:00
parent 54bc3aa4f5
commit 90e9f56f79

View File

@ -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",