all repos — openbox @ b9b3123305a943223978f6bb91e1284b4eb95adc

openbox fork - make it a bit more like ryudo

when getting the state, grab the above/below from the max amongst other members of the client's group
Dana Jansens danakj@orodu.net
commit

b9b3123305a943223978f6bb91e1284b4eb95adc

parent

d07be3da4452866d4691348efd84d92a781274c3

1 files changed, 28 insertions(+), 0 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -849,6 +849,34 @@ }

g_free(state); } + + if (!(self->above || self->below)) { + if (client_has_group_siblings(self)) { + /* apply stuff from the group */ + GSList *it; + gint layer = -1; + + for (it = self->group->members; it; it = g_slist_next(it)) { + ObClient *c = it->data; + if (c != self && !client_search_transient(self, c)) + layer = MAX(layer, + (c->above ? 1 : (c->below ? -1 : 0))); + } + switch (layer) { + case -1: + self->below = TRUE; + break; + case 0: + break; + case 1: + self->above = TRUE; + break; + default: + g_assert_not_reached(); + break; + } + } + } } static void client_get_shaped(ObClient *self)