diff --git a/src/core/display.c b/src/core/display.c index 57423eef6..14bcebe2e 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -2440,13 +2440,22 @@ meta_display_get_tab_list (MetaDisplay *display, mru_list = workspace ? workspace->mru_list : global_mru_list; - /* Windows sellout mode - MRU order. + /* Windows sellout mode - MRU order. Collect unminimized windows + * then minimized so minimized windows aren't in the way so much. */ for (tmp = mru_list; tmp; tmp = tmp->next) { MetaWindow *window = tmp->data; - if (IN_TAB_CHAIN (window, type)) + if (!window->minimized && IN_TAB_CHAIN (window, type)) + tab_list = g_list_prepend (tab_list, window); + } + + for (tmp = mru_list; tmp; tmp = tmp->next) + { + MetaWindow *window = tmp->data; + + if (window->minimized && IN_TAB_CHAIN (window, type)) tab_list = g_list_prepend (tab_list, window); }