gint config_mouse_threshold;
gint config_mouse_dclicktime;
-gchar *config_menu_path;
+GSList *config_menu_files;
+
+gint config_resist_win;
+gint config_resist_edge;
gchar *expand_tilde(const gchar *f)
{
if (keylist) {
nact = parse_find_node("action", node);
while (nact) {
- if ((action = action_parse(doc, nact))) {
+ if ((action = action_parse(i, doc, nact))) {
/* validate that its okay for a key binding */
if (action->func == action_moveresize &&
action->data.moveresize.corner !=
goto next_nbut;
nact = parse_find_node("action", nbut->xmlChildrenNode);
while (nact) {
- if ((action = action_parse(doc, nact))) {
+ if ((action = action_parse(i, doc, nact))) {
/* validate that its okay for a mouse binding*/
if (mact == OB_MOUSE_ACTION_MOTION) {
if (action->func != action_moveresize ||
node = node->xmlChildrenNode;
if ((n = parse_find_node("theme", node))) {
+ gchar *c;
+
g_free(config_theme);
- config_theme = parse_string(doc, n);
+ c = parse_string(doc, n);
+ config_theme = expand_tilde(c);
+ g_free(c);
}
- if ((n = parse_find_node("titlelayout", node))) {
+ if ((n = parse_find_node("titleLayout", node))) {
g_free(config_title_layout);
config_title_layout = parse_string(doc, n);
}
}
static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d)
+{
+ for (node = node->xmlChildrenNode; node; node = node->next) {
+ if (!xmlStrcasecmp(node->name, (const xmlChar*) "file")) {
+ gchar *c;
+
+ c = parse_string(doc, node);
+ config_menu_files = g_slist_append(config_menu_files,
+ expand_tilde(c));
+ g_free(c);
+ }
+ }
+}
+
+static void parse_resistance(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
+ void *d)
{
xmlNodePtr n;
node = node->xmlChildrenNode;
- if ((n = parse_find_node("location", node))) {
- gchar *c;
-
- c = parse_string(doc, n);
- config_menu_path = expand_tilde(c);
- g_free(c);
- }
+ if ((n = parse_find_node("strength", node)))
+ config_resist_win = parse_int(doc, n);
+ if ((n = parse_find_node("screen_edge_strength", node)))
+ config_resist_edge = parse_int(doc, n);
}
-
+
void config_startup(ObParseInst *i)
{
config_focus_new = TRUE;
parse_register(i, "mouse", parse_mouse, NULL);
- config_menu_path = NULL;
+ config_resist_win = 10;
+ config_resist_edge = 10;
+
+ parse_register(i, "resistance", parse_resistance, NULL);
+
+ config_menu_files = NULL;
parse_register(i, "menu", parse_menu, NULL);
}
g_free(config_theme);
- for (it = config_desktops_names; it; it = it->next)
+ for (it = config_desktops_names; it; it = g_slist_next(it))
g_free(it->data);
g_slist_free(config_desktops_names);
+
+ for (it = config_menu_files; it; it = g_slist_next(it))
+ g_free(it->data);
+ g_slist_free(config_menu_files);
}