allow you to force the position of windows with rc.xml's per-app settings with the force="yes" attribute
This commit is contained in:
parent
a19f2f8bc9
commit
deb0aa720a
3 changed files with 7 additions and 2 deletions
|
@ -137,6 +137,7 @@ void config_app_settings_copy_non_defaults(const ObAppSettings *src,
|
|||
|
||||
if (src->pos_given) {
|
||||
dst->pos_given = TRUE;
|
||||
dst->pos_force = src->pos_force;
|
||||
dst->position = src->position;
|
||||
dst->monitor = src->monitor;
|
||||
}
|
||||
|
@ -246,6 +247,8 @@ static void parse_per_app_settings(ObParseInst *inst, xmlDocPtr doc,
|
|||
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)))
|
||||
|
|
|
@ -41,6 +41,7 @@ struct _ObAppSettings
|
|||
|
||||
GravityPoint position;
|
||||
gboolean pos_given;
|
||||
gboolean pos_force;
|
||||
|
||||
guint desktop;
|
||||
gint shade;
|
||||
|
|
|
@ -489,8 +489,9 @@ gboolean place_client(ObClient *client, gint *x, gint *y,
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue