unmap and map the client window when the frame is hidden/shown

This commit is contained in:
Dana Jansens 2003-10-15 03:01:34 +00:00
parent 37c9f2d961
commit c9233ddb23
2 changed files with 8 additions and 12 deletions

View file

@ -493,10 +493,9 @@ void client_unmanage(ObClient *self)
PROP_ERASE(self->window, net_wm_state); PROP_ERASE(self->window, net_wm_state);
PROP_ERASE(self->window, wm_state); PROP_ERASE(self->window, wm_state);
} else { } else {
/* if we're left in an iconic state, the client wont be mapped. this is /* if we're left in an unmapped state, the client wont be mapped. this
bad, since we will no longer be managing the window on restart */ is bad, since we will no longer be managing the window on restart */
if (self->iconic) XMapWindow(ob_display, self->window);
XMapWindow(ob_display, self->window);
} }
@ -2203,11 +2202,6 @@ static void client_iconify_recursive(ObClient *self,
PROP_MSG(self->window, kde_wm_change_state, PROP_MSG(self->window, kde_wm_change_state,
self->wmstate, 1, 0, 0); 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 /* update the focus lists.. iconic windows go to the bottom of
the list, put the new iconic window at the 'top of the the list, put the new iconic window at the 'top of the
bottom'. */ bottom'. */
@ -2227,8 +2221,6 @@ static void client_iconify_recursive(ObClient *self,
PROP_MSG(self->window, kde_wm_change_state, PROP_MSG(self->window, kde_wm_change_state,
self->wmstate, 1, 0, 0); self->wmstate, 1, 0, 0);
XMapWindow(ob_display, self->window);
/* this puts it after the current focused window */ /* this puts it after the current focused window */
focus_order_remove(self); focus_order_remove(self);
focus_order_add_new(self); focus_order_add_new(self);

View file

@ -189,6 +189,7 @@ void frame_show(ObFrame *self)
{ {
if (!self->visible) { if (!self->visible) {
self->visible = TRUE; self->visible = TRUE;
XMapWindow(ob_display, self->client->window);
XMapWindow(ob_display, self->window); XMapWindow(ob_display, self->window);
} }
} }
@ -197,8 +198,11 @@ void frame_hide(ObFrame *self)
{ {
if (self->visible) { if (self->visible) {
self->visible = FALSE; 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->window);
XUnmapWindow(ob_display, self->client->window);
} }
} }