From 67cbbeb6c15e056d920cfbae69074676689ad880 Mon Sep 17 00:00:00 2001 From: Rob Adams Date: Sat, 15 Mar 2003 02:16:21 +0000 Subject: [PATCH] Make it so that the alt-tabbing won't try to go to a minimized window by 2003-03-13 Rob Adams Make it so that the alt-tabbing won't try to go to a minimized window by default. Fix for #107071. * display.c (meta_display_get_tab_list): use a GList instead of a GSList (meta_display_get_tab_next): use meta_display_get_tab_list to decide what the next/previous tab window should be. * display.h (meta_display_get_tab_list): update function prototype to return GList instead of GSList. * screen.c (meta_screen_ensure_tab_popup): update function to deal with GList returned by meta_display_get_tab_list instead of GSList. --- src/display.c | 32 ++++++++++++++++++++------------ src/display.h | 8 ++++---- src/screen.c | 8 ++++---- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/display.c b/src/display.c index 21daa9e4e..6fef5f99d 100644 --- a/src/display.c +++ b/src/display.c @@ -3381,7 +3381,7 @@ find_tab_forward (MetaDisplay *display, MetaTabList type, MetaScreen *screen, MetaWorkspace *workspace, - GList *start) + GList *start) { GList *tmp; @@ -3458,13 +3458,13 @@ find_tab_backward (MetaDisplay *display, return NULL; } -GSList* +GList* meta_display_get_tab_list (MetaDisplay *display, MetaTabList type, MetaScreen *screen, MetaWorkspace *workspace) { - GSList *tab_list; + GList *tab_list; /* workspace can be NULL for all workspaces */ @@ -3485,7 +3485,7 @@ meta_display_get_tab_list (MetaDisplay *display, IN_TAB_CHAIN (window, type) && (workspace == NULL || meta_window_visible_on_workspace (window, workspace))) - tab_list = g_slist_prepend (tab_list, window); + tab_list = g_list_prepend (tab_list, window); tmp = tmp->next; } @@ -3504,13 +3504,13 @@ meta_display_get_tab_list (MetaDisplay *display, IN_TAB_CHAIN (window, type) && (workspace == NULL || meta_window_visible_on_workspace (window, workspace))) - tab_list = g_slist_prepend (tab_list, window); + tab_list = g_list_prepend (tab_list, window); tmp = tmp->next; } } - tab_list = g_slist_reverse (tab_list); + tab_list = g_list_reverse (tab_list); return tab_list; } @@ -3518,12 +3518,18 @@ meta_display_get_tab_list (MetaDisplay *display, MetaWindow* meta_display_get_tab_next (MetaDisplay *display, MetaTabList type, - MetaScreen *screen, + MetaScreen *screen, MetaWorkspace *workspace, MetaWindow *window, gboolean backward) { - if (display->mru_list == NULL) + GList *tab_list; + tab_list = meta_display_get_tab_list(display, + type, + screen, + workspace); + + if (tab_list == NULL) return NULL; if (window != NULL) @@ -3532,20 +3538,22 @@ meta_display_get_tab_next (MetaDisplay *display, if (backward) return find_tab_backward (display, type, screen, workspace, - g_list_find (display->mru_list, + g_list_find (tab_list, window)); else return find_tab_forward (display, type, screen, workspace, - g_list_find (display->mru_list, + g_list_find (tab_list, window)); } if (backward) return find_tab_backward (display, type, screen, workspace, - display->mru_list); + tab_list); else return find_tab_forward (display, type, screen, workspace, - display->mru_list); + tab_list); + + g_list_free (tab_list); } MetaWindow* diff --git a/src/display.h b/src/display.h index 3f2cb3a47..c73c61593 100644 --- a/src/display.h +++ b/src/display.h @@ -410,10 +410,10 @@ typedef enum } MetaTabList; -GSList* meta_display_get_tab_list (MetaDisplay *display, - MetaTabList type, - MetaScreen *screen, - MetaWorkspace *workspace); +GList* meta_display_get_tab_list (MetaDisplay *display, + MetaTabList type, + MetaScreen *screen, + MetaWorkspace *workspace); MetaWindow* meta_display_get_tab_next (MetaDisplay *display, MetaTabList type, diff --git a/src/screen.c b/src/screen.c index f02e947fd..d3183aeaf 100644 --- a/src/screen.c +++ b/src/screen.c @@ -1053,8 +1053,8 @@ meta_screen_ensure_tab_popup (MetaScreen *screen, MetaTabList type) { MetaTabEntry *entries; - GSList *tab_list; - GSList *tmp; + GList *tab_list; + GList *tmp; int len; int i; @@ -1066,7 +1066,7 @@ meta_screen_ensure_tab_popup (MetaScreen *screen, screen, screen->active_workspace); - len = g_slist_length (tab_list); + len = g_list_length (tab_list); entries = g_new (MetaTabEntry, len + 1); entries[len].key = NULL; @@ -1133,7 +1133,7 @@ meta_screen_ensure_tab_popup (MetaScreen *screen, TRUE); g_free (entries); - g_slist_free (tab_list); + g_list_free (tab_list); /* don't show tab popup, since proper window isn't selected yet */ }