unmap and map the client window when the frame is hidden/shown
This commit is contained in:
parent
37c9f2d961
commit
c9233ddb23
2 changed files with 8 additions and 12 deletions
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue