diff --git a/ChangeLog b/ChangeLog index 45ea977bc..7e4df2360 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2006-01-09 Elijah Newren + + Fix window outline for minimized windows when using alt-esc. + #325092. + + * src/display.c (meta_display_begin_grab_op): Specify the showing + type of tabbing operation (Alt tab vs. alt-esc) in addition to the + listing type of tabbing operation (docks vs normal windows) to + meta_screen_ensure_tab_popup(). + + * src/display.h (enum MetaTabShowType): new convenience enum + + * src/screen.[ch] (meta_screen_ensure_tab_popup): require the + showing type be specified in addition to the tabbing type; put the + outline around the window instead of the icon when in alt-esc + mode. + 2006-01-09 Elijah Newren Fix reduced resources resize handling for windows with sizing or diff --git a/src/display.c b/src/display.c index e4ff7a112..30674c1fa 100644 --- a/src/display.c +++ b/src/display.c @@ -3413,15 +3413,25 @@ meta_display_begin_grab_op (MetaDisplay *display, switch (op) { case META_GRAB_OP_KEYBOARD_TABBING_NORMAL: + meta_screen_ensure_tab_popup (screen, + META_TAB_LIST_NORMAL, + META_TAB_SHOW_ICON); + break; case META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL: meta_screen_ensure_tab_popup (screen, - META_TAB_LIST_NORMAL); + META_TAB_LIST_NORMAL, + META_TAB_SHOW_INSTANTLY); break; case META_GRAB_OP_KEYBOARD_TABBING_DOCK: + meta_screen_ensure_tab_popup (screen, + META_TAB_LIST_DOCKS, + META_TAB_SHOW_ICON); + break; case META_GRAB_OP_KEYBOARD_ESCAPING_DOCK: meta_screen_ensure_tab_popup (screen, - META_TAB_LIST_DOCKS); + META_TAB_LIST_DOCKS, + META_TAB_SHOW_INSTANTLY); break; case META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING: diff --git a/src/display.h b/src/display.h index 1e6b02820..49bce7c13 100644 --- a/src/display.h +++ b/src/display.h @@ -488,6 +488,12 @@ typedef enum META_TAB_LIST_DOCKS } MetaTabList; +typedef enum +{ + META_TAB_SHOW_ICON, /* Alt-Tab mode */ + META_TAB_SHOW_INSTANTLY /* Alt-Esc mode */ +} MetaTabShowType; + GList* meta_display_get_tab_list (MetaDisplay *display, MetaTabList type, MetaScreen *screen, diff --git a/src/screen.c b/src/screen.c index 300c81f14..5b73e2b78 100644 --- a/src/screen.c +++ b/src/screen.c @@ -1162,8 +1162,9 @@ meta_screen_update_cursor (MetaScreen *screen) } void -meta_screen_ensure_tab_popup (MetaScreen *screen, - MetaTabList type) +meta_screen_ensure_tab_popup (MetaScreen *screen, + MetaTabList list_type, + MetaTabShowType show_type) { MetaTabEntry *entries; GList *tab_list; @@ -1175,7 +1176,7 @@ meta_screen_ensure_tab_popup (MetaScreen *screen, return; tab_list = meta_display_get_tab_list (screen->display, - type, + list_type, screen, screen->active_workspace); @@ -1202,7 +1203,9 @@ meta_screen_ensure_tab_popup (MetaScreen *screen, entries[i].hidden = !meta_window_showing_on_its_workspace (window); entries[i].demands_attention = window->wm_state_demands_attention; - if (!window->minimized || !meta_window_get_icon_geometry (window, &r)) + if (show_type == META_TAB_SHOW_INSTANTLY || + !window->minimized || + !meta_window_get_icon_geometry (window, &r)) meta_window_get_outer_rect (window, &r); entries[i].rect = r; diff --git a/src/screen.h b/src/screen.h index 29411ea9b..67d171aaf 100644 --- a/src/screen.h +++ b/src/screen.h @@ -146,8 +146,8 @@ void meta_screen_set_cursor (MetaScreen *scree void meta_screen_update_cursor (MetaScreen *screen); void meta_screen_ensure_tab_popup (MetaScreen *screen, - MetaTabList type); - + MetaTabList list_type, + MetaTabShowType show_type); void meta_screen_ensure_workspace_popup (MetaScreen *screen); MetaWindow* meta_screen_get_mouse_window (MetaScreen *screen,