Index: src/window.c
===================================================================
--- src/window.c (revision 3358)
+++ src/window.c (working copy)
@@ -2783,9 +2783,19 @@
/* Get window on current or given workspace */
if (workspace == NULL)
workspace = window->screen->active_workspace;
- if (!meta_window_located_on_workspace (window, workspace))
- meta_window_change_workspace (window, workspace);
-
+ /* We only move non-normal windows; see http://bugzilla.gnome.org/show_bug.cgi?id=482354 */
+ if (window->type == META_WINDOW_NORMAL
+ && !meta_window_located_on_workspace (window, workspace))
+ {
+ window->wm_state_demands_attention = TRUE;
+ set_net_wm_state (window);
+ return;
+ }
+ else if (!meta_window_located_on_workspace (window, workspace))
+ {
+ meta_window_change_workspace (window, workspace);
+ }
+
if (window->shaded)
meta_window_unshade (window, timestamp);