diff options
author | Havoc Pennington <hp@pobox.com> | 2002-07-06 19:05:37 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2002-07-06 19:05:37 +0000 |
commit | a62b3c8b29b09665c5589b168f3bbb9302354f32 (patch) | |
tree | daa792b9bc49fffa7277cfc26cfd71783b1c8ad9 /src/stack.c | |
parent | 8c3437fd2754c9aec761545a1a1e668ed6d07ea1 (diff) | |
download | metacity-a62b3c8b29b09665c5589b168f3bbb9302354f32.tar.gz |
Apply blackc@speakeasy.net patch, bug #83940, to do mini-workspaces
2002-07-06 Havoc Pennington <hp@pobox.com>
Apply blackc@speakeasy.net patch, bug #83940, to do
mini-workspaces similar to the pager, when switching
spaces.
* src/window.c (update_net_wm_state): actually fill in
wm_state_skip_taskbar, wm_state_skip_pager flags
* src/tabpopup.c: support drawing a mini-workspace similar to the
one the pager draws.
* src/stack.c (meta_stack_list_windows): new function to list
the windows in stacking order
* src/screen.c (meta_screen_ensure_workspace_popup): don't pass in
the ugly default app icon for workspaces
* src/display.c (event_callback): fix from blackc@speakeasy.net
to avoid dereferencing a NULL grab window.
Diffstat (limited to 'src/stack.c')
-rw-r--r-- | src/stack.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/stack.c b/src/stack.c index 27e7756b..50f7342a 100644 --- a/src/stack.c +++ b/src/stack.c @@ -1035,6 +1035,42 @@ meta_stack_get_default_focus_window (MetaStack *stack, return topmost_dock; } +GList* +meta_stack_list_windows (MetaStack *stack, + MetaWorkspace *workspace) +{ + GList *workspace_windows = NULL; + int layer = META_LAYER_LAST; + + --layer; + while (layer >= 0) + { + GList *link; + + g_assert (layer >= 0 && layer < META_LAYER_LAST); + + /* top of this layer is at the front of the list */ + link = stack->layers[layer]; + + while (link) + { + MetaWindow *window = link->data; + + if (window && meta_window_visible_on_workspace (window, workspace)) + { + workspace_windows = g_list_prepend (workspace_windows, + window); + } + + link = link->next; + } + + --layer; + } + + return workspace_windows; +} + int meta_stack_windows_cmp (MetaStack *stack, MetaWindow *window_a, |