If no valid window is found in the MRU list, then set focus to the desktop

2006-01-15  Kyle Ambroff  <kambroff@csus.edu>

	* src/workspace.c (focus_ancestor_or_mru_window):
	If no valid window is found in the MRU list, then set focus to the
	desktop window. (#317405)
This commit is contained in:
Kyle Ambroff 2006-01-16 06:07:29 +00:00 committed by Elijah Newren
parent d552ca35f6
commit fac7010411
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2006-01-15 Kyle Ambroff <kambroff@csus.edu>
* src/workspace.c (focus_ancestor_or_mru_window):
If no valid window is found in the MRU list, then set focus to the
desktop window. (#317405)
2006-01-15 Elijah Newren <newren@gmail.com> 2006-01-15 Elijah Newren <newren@gmail.com>
Fix accidental overzealous focus holding by the terminal Fix accidental overzealous focus holding by the terminal

View File

@ -950,6 +950,7 @@ focus_ancestor_or_mru_window (MetaWorkspace *workspace,
Time timestamp) Time timestamp)
{ {
MetaWindow *window = NULL; MetaWindow *window = NULL;
MetaWindow *desktop_window = NULL;
GList *tmp; GList *tmp;
if (not_this_one) if (not_this_one)
@ -996,10 +997,22 @@ focus_ancestor_or_mru_window (MetaWorkspace *workspace,
window = tmp->data; window = tmp->data;
break; break;
} }
else if (tmp_window != not_this_one &&
desktop_window == NULL &&
meta_window_showing_on_its_workspace (tmp_window) &&
tmp_window->type == META_WINDOW_DESKTOP)
{
/* Found the most recently used desktop window */
desktop_window = tmp_window;
}
tmp = tmp->next; tmp = tmp->next;
} }
/* If no window was found, default to the MRU desktop-window */
if (window == NULL)
window = desktop_window;
if (window) if (window)
{ {
meta_topic (META_DEBUG_FOCUS, meta_topic (META_DEBUG_FOCUS,