- Point result;
- place_overlap_find_least_placement(client_rects, n_client_rects, head,
- &frame_size, &result);
- *x = result.x;
- *y = result.y;
+ {
+ Rect client_rects[n_client_rects];
+ GSList* it;
+ Point result;
+ guint i = 0;
+
+ if (!config_dock_hide)
+ dock_get_area(&client_rects[i++]);
+ for (it = potential_overlap_clients; it != NULL; it = g_slist_next(it)) {
+ ObClient* potential_overlap_client = (ObClient*)it->data;
+ client_rects[i] = potential_overlap_client->frame->area;
+ i += 1;
+ }
+ g_slist_free(potential_overlap_clients);
+
+ place_overlap_find_least_placement(client_rects, n_client_rects, head,
+ &frame_size, &result);
+ *x = result.x;
+ *y = result.y;
+ }