diff options
author | Havoc Pennington <hp@pobox.com> | 2002-11-22 06:00:18 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2002-11-22 06:00:18 +0000 |
commit | fd135d0869422879fc0e368d8d2cedc169ab4c68 (patch) | |
tree | b3818c534782de96177c1ffccd1c4e1f76ad847a | |
parent | 5452a0ecac1b0dc590907da53f58831e2e6fc7c2 (diff) | |
download | metacity-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-- | ChangeLog | 12 | ||||
-rw-r--r-- | src/display.c | 2 | ||||
-rw-r--r-- | src/window.c | 23 |
3 files changed, 33 insertions, 4 deletions
@@ -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) { |