workspace: Add meta_workspace_get_default_focus_window()

Each workspace has a window that will be focused when switching to that
workspace. Add a function to retrieve that window.

This is only relevant for click-to-focus focus mode, since with the two
other modes no window will be focused upon switching, and will only gain
focus when hovered.

This will be used in the next commit to make this window appear focused.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/850>
This commit is contained in:
Alexander Mikhaylenko 2019-10-12 23:55:01 +05:00
parent 448ffaefc5
commit 7afefbbb61
2 changed files with 15 additions and 0 deletions

View File

@ -92,6 +92,7 @@ GList* meta_workspace_get_onscreen_region (MetaWorkspace *workspace);
GList * meta_workspace_get_onmonitor_region (MetaWorkspace *workspace, GList * meta_workspace_get_onmonitor_region (MetaWorkspace *workspace,
MetaLogicalMonitor *logical_monitor); MetaLogicalMonitor *logical_monitor);
MetaWindow * meta_workspace_get_default_focus_window (MetaWorkspace *workspace);
void meta_workspace_focus_default_window (MetaWorkspace *workspace, void meta_workspace_focus_default_window (MetaWorkspace *workspace,
MetaWindow *not_this_one, MetaWindow *not_this_one,
guint32 timestamp); guint32 timestamp);

View File

@ -1284,6 +1284,20 @@ meta_workspace_get_name (MetaWorkspace *workspace)
return meta_prefs_get_workspace_name (meta_workspace_index (workspace)); return meta_prefs_get_workspace_name (meta_workspace_index (workspace));
} }
MetaWindow *
meta_workspace_get_default_focus_window (MetaWorkspace *workspace)
{
if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK)
{
return meta_stack_get_default_focus_window (workspace->display->stack,
workspace, NULL);
}
else
{
return NULL;
}
}
void void
meta_workspace_focus_default_window (MetaWorkspace *workspace, meta_workspace_focus_default_window (MetaWorkspace *workspace,
MetaWindow *not_this_one, MetaWindow *not_this_one,