if (src->pos_given) {
dst->pos_given = TRUE;
+ dst->pos_force = src->pos_force;
dst->position = src->position;
dst->monitor = src->monitor;
}
settings->monitor = parse_int(doc, c) + 1;
g_free(s);
}
+
+ parse_attr_bool("force", n, &settings->pos_force);
}
if ((n = parse_find_node("focus", app->children)))
gboolean userplaced = FALSE;
/* per-app settings override program specified position
- * but not user specified */
- if ((client->positioned & USPosition) ||
+ * but not user specified, unless pos_force is enabled */
+ if (((client->positioned & USPosition) &&
+ !(settings && settings->pos_given && settings->pos_force)) ||
((client->positioned & PPosition) &&
!(settings && settings->pos_given)))
return FALSE;