summaryrefslogtreecommitdiff
path: root/openbox/place.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/place.c')
-rw-r--r--openbox/place.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/openbox/place.c b/openbox/place.c
index 7d5c8694..aaa1639a 100644
--- a/openbox/place.c
+++ b/openbox/place.c
@@ -406,8 +406,19 @@ static gboolean place_least_overlap(ObClient *c, Rect *head, int *x, int *y,
GSList* potential_overlap_clients = NULL;
gint n_client_rects = config_dock_hide ? 0 : 1;
- /* if we're "showing desktop", ignore all existing windows */
- if (!screen_showing_desktop) {
+ /* If we're "showing desktop", and going to allow this window to
+ be shown now, then ignore all existing windows */
+ gboolean ignore_windows = FALSE;
+ switch (screen_show_desktop_mode) {
+ case SCREEN_SHOW_DESKTOP_NO:
+ case SCREEN_SHOW_DESKTOP_UNTIL_WINDOW:
+ break;
+ case SCREEN_SHOW_DESKTOP_UNTIL_TOGGLE:
+ ignore_windows = TRUE;
+ break;
+ }
+
+ if (!ignore_windows) {
GList* it;
for (it = client_list; it != NULL; it = g_list_next(it)) {
ObClient* maybe_client = (ObClient*)it->data;