summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElijah Newren <newren@gmail.com>2006-01-10 05:05:40 +0000
committerElijah Newren <newren@src.gnome.org>2006-01-10 05:05:40 +0000
commit8c5b6c875a30ad0f5276066b6b9f258f14d43eb0 (patch)
tree4328a6c42b63a8d53c69971649f289bbb14cc5c0
parentae52d731bed1870595567b908419a2e8d2b3496b (diff)
downloadmetacity-8c5b6c875a30ad0f5276066b6b9f258f14d43eb0.tar.gz
Fix window outline for minimized windows when using alt-esc. #325092.
2006-01-09 Elijah Newren <newren@gmail.com> 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.
-rw-r--r--ChangeLog17
-rw-r--r--src/display.c14
-rw-r--r--src/display.h6
-rw-r--r--src/screen.c11
-rw-r--r--src/screen.h4
5 files changed, 44 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 45ea977b..7e4df236 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
2006-01-09 Elijah Newren <newren@gmail.com>
+ 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 <newren@gmail.com>
+
Fix reduced resources resize handling for windows with sizing or
resizing constraints. #325774.
diff --git a/src/display.c b/src/display.c
index e4ff7a11..30674c1f 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 1e6b0282..49bce7c1 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 300c81f1..5b73e2b7 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 29411ea9..67d171aa 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,