summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-01-28 09:59:45 -0500
committerDana Jansens <danakj@orodu.net>2008-01-31 11:23:43 -0500
commitd11ac82062d729be5d63c9c40c5c2bb312a8b8f1 (patch)
tree23fe037c81dae8653207065b61440445ca292c43 /openbox
parent2570d8f25fcbfbae344b33cd63774a37c952d6eb (diff)
don't deiconify windows on reconfigure if they cant be iconified directly. stop managing windows in reverse order on restart it messes up the dock among other things
Diffstat (limited to 'openbox')
-rw-r--r--openbox/client.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 035f7c45..8169048f 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -204,14 +204,14 @@ void client_manage_all(void)
/* manage windows in reverse order from how they were originally mapped.
this is an attempt to manage children windows before their parents, so
that when the parent is mapped, it can find the child */
- for (i = nchild; i > 0; --i) {
- if (children[i--1] == None)
+ for (i = 0; i < nchild; ++i) {
+ if (children[i] == None)
continue;
- if (XGetWindowAttributes(ob_display, children[i-1], &attrib)) {
+ if (XGetWindowAttributes(ob_display, children[i], &attrib)) {
if (attrib.override_redirect) continue;
if (attrib.map_state != IsUnmapped)
- client_manage(children[i-1]);
+ client_manage(children[i]);
}
}
XFree(children);
@@ -1836,16 +1836,16 @@ static void client_change_allowed_actions(ObClient *self)
PROP_SETA32(self->window, net_wm_allowed_actions, atom, actions, num);
- /* make sure the window isn't breaking any rules now */
+ /* make sure the window isn't breaking any rules now
+
+ don't check ICONIFY here. just cuz a window can't iconify doesnt mean
+ it can't be iconified with its parent
+ */
if (!(self->functions & OB_CLIENT_FUNC_SHADE) && self->shaded) {
if (self->frame) client_shade(self, FALSE);
else self->shaded = FALSE;
}
- if (!(self->functions & OB_CLIENT_FUNC_ICONIFY) && self->iconic) {
- if (self->frame) client_iconify(self, FALSE, TRUE, FALSE);
- else self->iconic = FALSE;
- }
if (!(self->functions & OB_CLIENT_FUNC_FULLSCREEN) && self->fullscreen) {
if (self->frame) client_fullscreen(self, FALSE);
else self->fullscreen = FALSE;