}
}
- if (focus_client) {
+ if (focus_client && client_normal(focus_client)) {
add_choice(choice, client_monitor(focus_client));
- ob_debug("placement adding choice %d for focused window\n",
+ ob_debug("placement adding choice %d for normal focused window\n",
client_monitor(focus_client));
}
guint i;
areas = pick_head(client);
- i = g_random_int_range(0, screen_num_monitors);
+ i = config_place_active ? 0 : g_random_int_range(0, screen_num_monitors);
l = areas[i]->x;
t = areas[i]->y;
/* try ignoring different things to find empty space */
for (ignore = 0; ignore < IGNORE_END && !ret; ignore++) {
- /* try all monitors in order of preference */
- for (i = 0; i < screen_num_monitors && !ret; ++i) {
+ /* try all monitors in order of preference, but only the first one
+ if config_place_active is true */
+ for (i = 0; (i < (config_place_active ? 1 : screen_num_monitors) &&
+ !ret); ++i)
+ {
GList *it;
/* add the whole monitor */