gboolean config_unfocus_leave;
ObPlacePolicy config_place_policy;
-gboolean config_place_center;
ObPlaceMonitor config_place_monitor;
guint config_primary_monitor_index;
{
xmlNodePtr app = obt_xml_find_node(node->children, "application");
gchar *name = NULL, *class = NULL, *role = NULL, *title = NULL,
- *type_str = NULL;
- gboolean name_set, class_set, type_set, role_set, title_set;
+ *type_str = NULL, *group_name = NULL, *group_class = NULL;
+ gboolean name_set, class_set, type_set, role_set, title_set,
+ group_name_set, group_class_set;
ObClientType type;
gboolean x_pos_given;
class_set = obt_xml_attr_string(app, "class", &class);
name_set = obt_xml_attr_string(app, "name", &name);
+ group_class_set = obt_xml_attr_string(app, "groupclass", &group_class);
+ group_name_set = obt_xml_attr_string(app, "groupname", &group_name);
type_set = obt_xml_attr_string(app, "type", &type_str);
role_set = obt_xml_attr_string(app, "role", &role);
title_set = obt_xml_attr_string(app, "title", &title);
type_set = FALSE; /* not valid! */
}
- if (class_set || name_set || role_set || title_set || type_set) {
+ if (class_set || name_set || role_set || title_set || type_set ||
+ group_class_set || group_name_set)
+ {
xmlNodePtr n, c;
ObAppSettings *settings = config_create_app_settings();
if (class_set)
settings->class = g_pattern_spec_new(class);
+ if (group_name_set)
+ settings->group_name = g_pattern_spec_new(group_name);
+
+ if (group_class_set)
+ settings->group_class = g_pattern_spec_new(group_class);
+
if (role_set)
settings->role = g_pattern_spec_new(role);
(gpointer) settings);
g_free(name);
g_free(class);
+ g_free(group_name);
+ g_free(group_class);
g_free(role);
g_free(title);
g_free(type_str);
- name = class = role = title = type_str = NULL;
+ name = class = group_name = group_class = role = title = type_str =
+ NULL;
}
app = obt_xml_find_node(app->next, "application");
if ((n = obt_xml_find_node(node, "policy")))
if (obt_xml_node_contains(n, "UnderMouse"))
config_place_policy = OB_PLACE_POLICY_MOUSE;
- if ((n = obt_xml_find_node(node, "center")))
- config_place_center = obt_xml_node_bool(n);
if ((n = obt_xml_find_node(node, "monitor"))) {
if (obt_xml_node_contains(n, "active"))
config_place_monitor = OB_PLACE_MONITOR_ACTIVE;
obt_xml_register(i, "focus", parse_focus, NULL);
config_place_policy = OB_PLACE_POLICY_SMART;
- config_place_center = TRUE;
config_place_monitor = OB_PLACE_MONITOR_PRIMARY;
config_primary_monitor_index = 1;
for (it = config_per_app_settings; it; it = g_slist_next(it)) {
ObAppSettings *itd = (ObAppSettings *)it->data;
- if (itd->name) g_pattern_spec_free(itd->name);
- if (itd->role) g_pattern_spec_free(itd->role);
+ if (itd->name) g_pattern_spec_free(itd->name);
+ if (itd->role) g_pattern_spec_free(itd->role);
if (itd->title) g_pattern_spec_free(itd->title);
if (itd->class) g_pattern_spec_free(itd->class);
+ if (itd->group_name) g_pattern_spec_free(itd->group_name);
+ if (itd->group_class) g_pattern_spec_free(itd->group_class);
g_slice_free(ObAppSettings, it->data);
}
g_slist_free(config_per_app_settings);