summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
Diffstat (limited to 'openbox')
-rw-r--r--openbox/client.c14
-rw-r--r--openbox/frame.c6
2 files changed, 8 insertions, 12 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 8734ce49..78af988f 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -493,10 +493,9 @@ void client_unmanage(ObClient *self)
PROP_ERASE(self->window, net_wm_state);
PROP_ERASE(self->window, wm_state);
} else {
- /* if we're left in an iconic state, the client wont be mapped. this is
- bad, since we will no longer be managing the window on restart */
- if (self->iconic)
- XMapWindow(ob_display, self->window);
+ /* if we're left in an unmapped state, the client wont be mapped. this
+ is bad, since we will no longer be managing the window on restart */
+ XMapWindow(ob_display, self->window);
}
@@ -2203,11 +2202,6 @@ static void client_iconify_recursive(ObClient *self,
PROP_MSG(self->window, kde_wm_change_state,
self->wmstate, 1, 0, 0);
- self->ignore_unmaps++;
- /* we unmap the client itself so that we can get MapRequest
- events, and because the ICCCM tells us to! */
- XUnmapWindow(ob_display, self->window);
-
/* update the focus lists.. iconic windows go to the bottom of
the list, put the new iconic window at the 'top of the
bottom'. */
@@ -2227,8 +2221,6 @@ static void client_iconify_recursive(ObClient *self,
PROP_MSG(self->window, kde_wm_change_state,
self->wmstate, 1, 0, 0);
- XMapWindow(ob_display, self->window);
-
/* this puts it after the current focused window */
focus_order_remove(self);
focus_order_add_new(self);
diff --git a/openbox/frame.c b/openbox/frame.c
index 93263e27..40c15e00 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -189,6 +189,7 @@ void frame_show(ObFrame *self)
{
if (!self->visible) {
self->visible = TRUE;
+ XMapWindow(ob_display, self->client->window);
XMapWindow(ob_display, self->window);
}
}
@@ -197,8 +198,11 @@ void frame_hide(ObFrame *self)
{
if (self->visible) {
self->visible = FALSE;
- self->client->ignore_unmaps++;
+ self->client->ignore_unmaps += 2;
+ /* we unmap the client itself so that we can get MapRequest
+ events, and because the ICCCM tells us to! */
XUnmapWindow(ob_display, self->window);
+ XUnmapWindow(ob_display, self->client->window);
}
}