remove the unused tab stuff

2002-04-05  Havoc Pennington  <hp@pobox.com>

	* src/stack.c: remove the unused tab stuff

	* src/display.c: implement tab list among panels

	* src/keybindings.c: fill in move-between-panels keybindings
This commit is contained in:
Havoc Pennington
2002-04-05 15:52:49 +00:00
committed by Havoc Pennington
parent a500a7e668
commit fa0592ebc7
10 changed files with 118 additions and 223 deletions

View File

@@ -929,182 +929,6 @@ meta_stack_get_default_focus_window (MetaStack *stack,
return topmost_dock;
}
#define GET_XWINDOW(stack, i) (g_array_index ((stack)->windows, \
Window, (i)))
static MetaWindow*
find_tab_forward (MetaStack *stack,
MetaWorkspace *workspace,
int start)
{
int i;
/* start may be -1 to find any tab window at all */
i = start + 1;
while (i < (int) stack->windows->len)
{
MetaWindow *window;
window = meta_display_lookup_x_window (stack->screen->display,
GET_XWINDOW (stack, i));
if (window && META_WINDOW_IN_TAB_CHAIN (window) &&
(workspace == NULL ||
meta_window_visible_on_workspace (window, workspace)))
return window;
++i;
}
i = 0;
while (i < start)
{
MetaWindow *window;
window = meta_display_lookup_x_window (stack->screen->display,
GET_XWINDOW (stack, i));
if (window && META_WINDOW_IN_TAB_CHAIN (window) &&
(workspace == NULL ||
meta_window_visible_on_workspace (window, workspace)))
return window;
++i;
}
/* no window other than the start window is in the tab chain */
return NULL;
}
static MetaWindow*
find_tab_backward (MetaStack *stack,
MetaWorkspace *workspace,
int start)
{
int i;
/* start may be stack->windows->len to find any tab window at all */
i = start - 1;
while (i >= 0)
{
MetaWindow *window;
window = meta_display_lookup_x_window (stack->screen->display,
GET_XWINDOW (stack, i));
if (window && META_WINDOW_IN_TAB_CHAIN (window) &&
(workspace == NULL ||
meta_window_visible_on_workspace (window, workspace)))
return window;
--i;
}
i = stack->windows->len - 1;
while (i > start)
{
MetaWindow *window;
window = meta_display_lookup_x_window (stack->screen->display,
GET_XWINDOW (stack, i));
if (window && META_WINDOW_IN_TAB_CHAIN (window) &&
(workspace == NULL ||
meta_window_visible_on_workspace (window, workspace)))
return window;
--i;
}
/* no window other than the start window is in the tab chain */
return NULL;
}
/* This ignores the dock/desktop layers */
MetaWindow*
meta_stack_get_tab_next (MetaStack *stack,
MetaWorkspace *workspace,
MetaWindow *window,
gboolean backward)
{
int i;
if (workspace && window)
{
/* This is a paranoia check, because races can happen where
* you get a key shortcut or something on a window just as you
* are moving workspaces to one the window isn't on
*/
if (!meta_window_visible_on_workspace (window, workspace))
return NULL;
}
if (stack->windows->len == 0)
return NULL;
if (window != NULL)
{
i = 0;
while (i < (int) stack->windows->len)
{
Window w;
w = g_array_index (stack->windows, Window, i);
if (w == window->xwindow)
{
if (backward)
return find_tab_backward (stack, workspace, i);
else
return find_tab_forward (stack, workspace, i);
}
++i;
}
}
/* window may be NULL, or maybe the origin window was already the last/first
* window and we need to wrap around
*/
if (backward)
return find_tab_backward (stack, workspace,
stack->windows->len);
else
return find_tab_forward (stack, workspace, -1);
}
GSList*
meta_stack_get_tab_list (MetaStack *stack,
MetaWorkspace *workspace)
{
GSList *list;
int i;
list = NULL;
i = 0;
while (i < (int) stack->windows->len)
{
MetaWindow *window;
window = meta_display_lookup_x_window (stack->screen->display,
GET_XWINDOW (stack, i));
if (window && META_WINDOW_IN_TAB_CHAIN (window) &&
(workspace == NULL ||
meta_window_visible_on_workspace (window, workspace)))
list = g_slist_prepend (list, window);
++i;
}
list = g_slist_reverse (list);
return list;
}
int
meta_stack_windows_cmp (MetaStack *stack,
MetaWindow *window_a,