when receiving a _NET_ACTIVE_WINDOW message, switch to the desktop where

2005-02-20  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_activate): when receiving a
	_NET_ACTIVE_WINDOW message, switch to the desktop where the window
	is located before activating instead of moving the window to the
	current desktop.  Thanks to Lubos Lunak for catching this issue.
	Fixes #128380.
This commit is contained in:
Elijah Newren 2005-02-20 22:44:15 +00:00 committed by Elijah Newren
parent 79f2b91679
commit 8de466b582
2 changed files with 29 additions and 12 deletions

View File

@ -1,3 +1,11 @@
2005-02-20 Elijah Newren <newren@gmail.com>
* src/window.c: (meta_window_activate): when receiving a
_NET_ACTIVE_WINDOW message, switch to the desktop where the window
is located before activating instead of moving the window to the
current desktop. Thanks to Lubos Lunak for catching this issue.
Fixes #128380.
2005-02-20 Elijah Newren <newren@gmail.com> 2005-02-20 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_show): Ignore all focus and * src/window.c (meta_window_show): Ignore all focus and

View File

@ -2234,22 +2234,31 @@ meta_window_activate (MetaWindow *window,
/* disable show desktop mode unless we're a desktop component */ /* disable show desktop mode unless we're a desktop component */
maybe_leave_show_desktop_mode (window); maybe_leave_show_desktop_mode (window);
/* Get window on current workspace */
if (!meta_window_located_on_workspace (window,
window->screen->active_workspace))
meta_window_change_workspace (window,
window->screen->active_workspace);
if (window->shaded) if (window->shaded)
meta_window_unshade (window); meta_window_unshade (window);
unminimize_window_and_all_transient_parents (window); unminimize_window_and_all_transient_parents (window);
/* Activate the window, moving to its workspace if necessary */
if (!meta_window_located_on_workspace (window,
window->screen->active_workspace))
{
meta_topic (META_DEBUG_FOCUS,
"Focusing and moving to workspace of window %s due to "
"activation\n",
window->desc);
meta_workspace_activate_with_focus (window->workspace,
window,
timestamp);
}
else
{
meta_window_raise (window); meta_window_raise (window);
meta_topic (META_DEBUG_FOCUS, meta_topic (META_DEBUG_FOCUS,
"Focusing window %s due to activation\n", "Focusing window %s due to activation\n",
window->desc); window->desc);
meta_window_focus (window, timestamp); meta_window_focus (window, timestamp);
}
} }
/* returns values suitable for meta_window_move /* returns values suitable for meta_window_move