[mutter] Don't focus ancestor window on a different workspace



commit 88ee4c5b30448320fe3bb7bebf071281a5f40e6e
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Mon Oct 19 18:43:00 2009 -0400

    Don't focus ancestor window on a different workspace
    
    When we are moving a window with a modal dialog to a different
    workspace, meta_workspace_focus_default_window() can be called
    with 'not_this_one' being the focused modal dialog.
    
    Since the ancestor of that window is also being moved, we must
    not focus it as an alternative to the current window; this will
    cause windows to be moved back and Metacity to get into an
    inconsistent confused state.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=237158
    
    https://bugzilla.gnome.org/show_bug.cgi?id=598995

 src/core/workspace.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/src/core/workspace.c b/src/core/workspace.c
index d68cde8..e80ab8b 100644
--- a/src/core/workspace.c
+++ b/src/core/workspace.c
@@ -1303,7 +1303,10 @@ focus_ancestor_or_mru_window (MetaWorkspace *workspace,
       MetaWindow *ancestor;
       ancestor = NULL;
       meta_window_foreach_ancestor (not_this_one, record_ancestor, &ancestor);
-      if (ancestor != NULL)
+      if (ancestor != NULL &&
+          (ancestor->on_all_workspaces ||
+           ancestor->workspace == workspace) &&
+          meta_window_showing_on_its_workspace (ancestor))
         {
           meta_topic (META_DEBUG_FOCUS,
                       "Focusing %s, ancestor of %s\n", 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]