summaryrefslogtreecommitdiff
path: root/src/stack.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2002-07-06 19:05:37 +0000
committerHavoc Pennington <hp@src.gnome.org>2002-07-06 19:05:37 +0000
commita62b3c8b29b09665c5589b168f3bbb9302354f32 (patch)
treedaa792b9bc49fffa7277cfc26cfd71783b1c8ad9 /src/stack.c
parent8c3437fd2754c9aec761545a1a1e668ed6d07ea1 (diff)
downloadmetacity-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.c36
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,