all repos — openbox @ 6d0f44e1d15b258fb29f303e2799b3184e4dcb3a

openbox fork - make it a bit more like ryudo

Use g_list_find instead of weird bouncing loops
Mikael Magnusson mikachu@gmail.com
commit

6d0f44e1d15b258fb29f303e2799b3184e4dcb3a

parent

3ff416203439afb00b66b04f473669eab1f425e4

1 files changed, 6 insertions(+), 11 deletions(-)

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

@@ -571,17 +571,16 @@ static gboolean stacking_occluded(ObClient *client, ObClient *sibling)

{ GList *it; gboolean occluded = FALSE; - gboolean found = FALSE; /* no need for any looping in this case */ if (sibling && client->layer != sibling->layer) return occluded; - for (it = stacking_list; it; - it = (found ? g_list_previous(it) :g_list_next(it))) + for (it = g_list_previous(g_list_find(stacking_list, client)); it; + it = g_list_previous(it)) if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; - if (found && !c->iconic && + if (!c->iconic && (c->desktop == DESKTOP_ALL || client->desktop == DESKTOP_ALL || c->desktop == client->desktop) && !client_search_transient(client, c))

@@ -602,8 +601,6 @@ else if (c->layer > client->layer)

break; /* we past its layer */ } } - else if (c == client) - found = TRUE; } return occluded; }

@@ -615,16 +612,16 @@ static gboolean stacking_occludes(ObClient *client, ObClient *sibling)

{ GList *it; gboolean occludes = FALSE; - gboolean found = FALSE; /* no need for any looping in this case */ if (sibling && client->layer != sibling->layer) return occludes; - for (it = stacking_list; it; it = g_list_next(it)) + for (it = g_list_next(g_list_find(stacking_list, client)); + it; it = g_list_next(it)) if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; - if (found && !c->iconic && + if (!c->iconic && (c->desktop == DESKTOP_ALL || client->desktop == DESKTOP_ALL || c->desktop == client->desktop) && !client_search_transient(c, client))

@@ -645,8 +642,6 @@ else if (c->layer < client->layer)

break; /* we past its layer */ } } - else if (c == client) - found = TRUE; } return occludes; }