From c9233ddb23ee71de0e1fde8eb031d241cbaec8ef Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 15 Oct 2003 03:01:34 +0000 Subject: [PATCH] unmap and map the client window when the frame is hidden/shown --- openbox/client.c | 14 +++----------- openbox/frame.c | 6 +++++- 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); } } -- 2.45.2