From 17dc2d6151a3f5ca8e77b69e98af1b1748da2cfb Mon Sep 17 00:00:00 2001 From: Rob Adams Date: Sat, 8 Nov 2003 05:29:23 +0000 Subject: [PATCH] show the window if it's a transient of a dock or desktop, since otherwise 2003-11-07 Rob Adams * src/window.c (window_should_be_showing): show the window if it's a transient of a dock or desktop, since otherwise such windows are invisible in show desktop mode. Fix for #124648. --- ChangeLog | 6 ++++++ src/window.c | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index ce65d7bf1..e72cacb04 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-11-07 Rob Adams + + * src/window.c (window_should_be_showing): show the window if it's + a transient of a dock or desktop, since otherwise such windows are + invisible in show desktop mode. Fix for #124648. + 2003-11-07 Rob Adams * src/main.c (main): Try harder to find a theme in the event that diff --git a/src/window.c b/src/window.c index b24620e58..035734bf8 100644 --- a/src/window.c +++ b/src/window.c @@ -1158,6 +1158,7 @@ static gboolean window_should_be_showing (MetaWindow *window) { gboolean showing, on_workspace; + gboolean is_desktop_or_dock; meta_verbose ("Should be showing for window %s\n", window->desc); @@ -1185,11 +1186,16 @@ window_should_be_showing (MetaWindow *window) showing = FALSE; /* 3. See if we're in "show desktop" mode */ - + is_desktop_or_dock = FALSE; + is_desktop_or_dock_foreach (window, + &is_desktop_or_dock); + + meta_window_foreach_ancestor (window, is_desktop_or_dock_foreach, + &is_desktop_or_dock); + if (showing && window->screen->showing_desktop && - window->type != META_WINDOW_DESKTOP && - window->type != META_WINDOW_DOCK) + !is_desktop_or_dock) { meta_verbose ("Window %s is on current workspace, but we're showing the desktop\n", window->desc);