summaryrefslogtreecommitdiff
path: root/openbox/place.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2007-12-18 21:12:52 +0100
committerMikael Magnusson <mikachu@comhem.se>2007-12-18 21:12:52 +0100
commit2b8b5da04b14af1639143cc332874c7e1a03a8bb (patch)
tree74fc76cd53dc5684b8009960e896ecbc91cf0891 /openbox/place.c
parent9586ad246dae1f1de89f2070722cfa0c0c41c477 (diff)
parent46f90bca8ab55a2f43bf33af1adf178bd0bd81d9 (diff)
Merge branch 'backport'
Diffstat (limited to 'openbox/place.c')
-rw-r--r--openbox/place.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/openbox/place.c b/openbox/place.c
index 7c20c79f..aa572db2 100644
--- a/openbox/place.c
+++ b/openbox/place.c
@@ -134,6 +134,8 @@ static Rect **pick_head(ObClient *c)
for (i = 0; i < screen_num_monitors; ++i)
area[i] = screen_area(c->desktop, choice[i], NULL);
+ g_free(choice);
+
return area;
}
@@ -180,7 +182,7 @@ static GSList* area_remove(GSList *list, Rect *a)
if (!RECT_INTERSECTS_RECT(*r, *a)) {
result = g_slist_prepend(result, r);
- r = NULL; /* dont free it */
+ /* dont free r, it's moved to the result list */
} else {
Rect isect, extra;
@@ -215,9 +217,10 @@ static GSList* area_remove(GSList *list, Rect *a)
r->width, RECT_BOTTOM(*r) - RECT_BOTTOM(isect));
result = area_add(result, &extra);
}
- }
- g_free(r);
+ /* 'r' is not being added to the result list, so free it */
+ g_free(r);
+ }
}
g_slist_free(list);
return result;
@@ -251,8 +254,6 @@ static gboolean place_nooverlap(ObClient *c, gint *x, gint *y)
/* try ignoring different things to find empty space */
for (ignore = 0; ignore < IGNORE_END && !ret; ignore++) {
- guint i;
-
/* try all monitors in order of preference */
for (i = 0; i < screen_num_monitors && !ret; ++i) {
GList *it;