summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2002-11-22 06:00:18 +0000
committerHavoc Pennington <hp@src.gnome.org>2002-11-22 06:00:18 +0000
commitfd135d0869422879fc0e368d8d2cedc169ab4c68 (patch)
treeb3818c534782de96177c1ffccd1c4e1f76ad847a
parent5452a0ecac1b0dc590907da53f58831e2e6fc7c2 (diff)
downloadmetacity-fd135d0869422879fc0e368d8d2cedc169ab4c68.tar.gz
patch from Hidetoshi Tajima to move a window's transients when moving the
2002-11-22 Havoc Pennington <hp@pobox.com> * src/window.c (meta_window_change_workspace): patch from Hidetoshi Tajima to move a window's transients when moving the window between workspaces. #98900 2002-11-21 Havoc Pennington <hp@pobox.com> * src/display.c (meta_display_open): init ret_to to RevertToPointerRoot out of sheer paranoia; don't want no RevertToNone in my code!
-rw-r--r--ChangeLog12
-rw-r--r--src/display.c2
-rw-r--r--src/window.c23
3 files changed, 33 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 9fea01cc..c9bb39f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2002-11-22 Havoc Pennington <hp@pobox.com>
+
+ * src/window.c (meta_window_change_workspace): patch from
+ Hidetoshi Tajima to move a window's transients when moving
+ the window between workspaces. #98900
+
+2002-11-21 Havoc Pennington <hp@pobox.com>
+
+ * src/display.c (meta_display_open): init ret_to to
+ RevertToPointerRoot out of sheer paranoia; don't want no
+ RevertToNone in my code!
+
2002-11-21 Havoc Pennington <hp@pobox.com>
* src/window.c (update_initial_workspace): delete
diff --git a/src/display.c b/src/display.c
index d9b23f7a..8198276e 100644
--- a/src/display.c
+++ b/src/display.c
@@ -528,7 +528,7 @@ meta_display_open (const char *name)
meta_error_trap_push (display);
focus = None;
- ret_to = RevertToNone;
+ ret_to = RevertToPointerRoot;
XGetInputFocus (display->xdisplay, &focus, &ret_to);
/* Force a new FocusIn (does this work?) */
diff --git a/src/window.c b/src/window.c
index 397daf91..0f2d63db 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2960,9 +2960,9 @@ meta_window_focus (MetaWindow *window,
}
}
-void
-meta_window_change_workspace (MetaWindow *window,
- MetaWorkspace *workspace)
+static void
+meta_window_change_workspace_without_transients (MetaWindow *window,
+ MetaWorkspace *workspace)
{
GList *next;
@@ -2997,6 +2997,23 @@ meta_window_change_workspace (MetaWindow *window,
g_assert (window->workspaces->next == NULL);
}
+static void
+change_workspace_foreach (MetaWindow *window,
+ void *data)
+{
+ meta_window_change_workspace_without_transients (window, data);
+}
+
+void
+meta_window_change_workspace (MetaWindow *window,
+ MetaWorkspace *workspace)
+{
+ meta_window_change_workspace_without_transients (window, workspace);
+
+ meta_window_foreach_transient (window, change_workspace_foreach,
+ workspace);
+}
+
void
meta_window_stick (MetaWindow *window)
{