summaryrefslogtreecommitdiffstats
path: root/metacity-2.20.1-dont-move-windows.patch
diff options
context:
space:
mode:
Diffstat (limited to 'metacity-2.20.1-dont-move-windows.patch')
-rw-r--r--metacity-2.20.1-dont-move-windows.patch112
1 files changed, 0 insertions, 112 deletions
diff --git a/metacity-2.20.1-dont-move-windows.patch b/metacity-2.20.1-dont-move-windows.patch
deleted file mode 100644
index 1d53802..0000000
--- a/metacity-2.20.1-dont-move-windows.patch
+++ /dev/null
@@ -1,112 +0,0 @@
---- metacity-2.20.1/src/core/window.c 2007-11-17 15:11:01.000000000 -0500
-+++ metacity-2.20.1.patched/src/core/window.c 2007-11-28 11:43:28.000000000 -0500
-@@ -74,6 +74,9 @@
- static void meta_window_show (MetaWindow *window);
- static void meta_window_hide (MetaWindow *window);
-
-+static void meta_window_set_demands_attention_internal (MetaWindow *window,
-+ MetaWorkspace *workspace);
-+
- static void meta_window_save_rect (MetaWindow *window);
-
- static void meta_window_move_resize_internal (MetaWindow *window,
-@@ -2793,7 +2796,7 @@
- "last_user_time (%u) is more recent; ignoring "
- " _NET_ACTIVE_WINDOW message.\n",
- window->display->last_user_time);
-- meta_window_set_demands_attention(window);
-+ meta_window_set_demands_attention_internal (window, workspace);
- return;
- }
-
-@@ -2813,8 +2816,21 @@
- /* 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);
-+
-+ /* For non-transient windows, we just set up a pulsing indicator,
-+ rather than move windows or workspaces.
-+ See http://bugzilla.gnome.org/show_bug.cgi?id=482354 */
-+ if (window->xtransient_for == None && !meta_window_located_on_workspace (window, workspace))
-+ {
-+ meta_window_set_demands_attention_internal (window, workspace);
-+ return;
-+ }
-+ else if (window->xtransient_for != None)
-+ {
-+ /* Move transients to current workspace - preference dialogs should appear over
-+ the source window. */
-+ meta_window_change_workspace (window, workspace);
-+ }
-
- if (window->shaded)
- meta_window_unshade (window, timestamp);
-@@ -7982,34 +7998,49 @@
- void
- meta_window_set_demands_attention (MetaWindow *window)
- {
-+ meta_window_set_demands_attention_internal (window, NULL);
-+}
-+
-+static void
-+meta_window_set_demands_attention_internal (MetaWindow *window,
-+ MetaWorkspace *workspace)
-+{
- MetaRectangle candidate_rect, other_rect;
- GList *stack = window->screen->stack->sorted;
- MetaWindow *other_window;
-- gboolean obscured = FALSE;
-+ gboolean obscured;
-
-+ if (!workspace)
-+ workspace = window->screen->active_workspace;
-+
-+ /* We count windows not located on the current workspace as obscured */
-+ obscured = !meta_window_located_on_workspace (window, workspace);
-+
- /* Does the window have any other window on this workspace
- * overlapping it?
- */
-+ if (!obscured)
-+ {
-+ meta_window_get_outer_rect (window, &candidate_rect);
-
-- meta_window_get_outer_rect (window, &candidate_rect);
--
-- /* The stack is sorted with the top windows first. */
-+ /* The stack is sorted with the top windows first. */
-
-- while (stack != NULL && stack->data != window)
-- {
-- other_window = stack->data;
-- stack = stack->next;
--
-- if (other_window->on_all_workspaces ||
-- window->on_all_workspaces ||
-- other_window->workspace == window->workspace)
-+ while (stack != NULL && stack->data != window)
- {
-- meta_window_get_outer_rect (other_window, &other_rect);
--
-- if (meta_rectangle_overlap (&candidate_rect, &other_rect))
-+ other_window = stack->data;
-+ stack = stack->next;
-+
-+ if (other_window->on_all_workspaces ||
-+ window->on_all_workspaces ||
-+ other_window->workspace == window->workspace)
- {
-- obscured = TRUE;
-- break;
-+ meta_window_get_outer_rect (other_window, &other_rect);
-+
-+ if (meta_rectangle_overlap (&candidate_rect, &other_rect))
-+ {
-+ obscured = TRUE;
-+ break;
-+ }
- }
- }
- }