X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=2eb8e13c4fe5623ae2459511f44453b92bc751af;hb=d158b642820910adf2d4f73370cf3537749230a6;hp=480308be603b3277486e1487aff185374176fb56;hpb=fd8ce9414aa12028b26fd67082e843ea161e3b90;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index 480308be..2eb8e13c 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -33,8 +33,10 @@ gboolean config_focus_follow; guint config_focus_delay; gboolean config_focus_raise; gboolean config_focus_last; +gboolean config_focus_under_mouse; ObPlacePolicy config_place_policy; +gboolean config_place_center; gchar *config_theme; gboolean config_theme_keepborder; @@ -131,6 +133,8 @@ void config_app_settings_copy_non_defaults(const ObAppSettings *src, dst->pos_given = TRUE; dst->center_x = src->center_x; dst->center_y = src->center_y; + dst->opposite_x = src->opposite_x; + dst->opposite_y = src->opposite_y; dst->position.x = src->position.x; dst->position.y = src->position.y; dst->monitor = src->monitor; @@ -207,7 +211,12 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc, settings->center_x = TRUE; x_pos_given = TRUE; } else { - settings->position.x = parse_int(doc, c); + if (s[0] == '-') + settings->opposite_x = TRUE; + if (s[0] == '-' || s[0] == '+') + settings->position.x = atoi(s+1); + else + settings->position.x = atoi(s); x_pos_given = TRUE; } g_free(s); @@ -220,7 +229,12 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc, settings->center_y = TRUE; settings->pos_given = TRUE; } else { - settings->position.y = parse_int(doc, c); + if (s[0] == '-') + settings->opposite_y = TRUE; + if (s[0] == '-' || s[0] == '+') + settings->position.y = atoi(s+1); + else + settings->position.y = atoi(s); settings->pos_given = TRUE; } g_free(s); @@ -468,6 +482,8 @@ static void parse_focus(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_focus_raise = parse_bool(doc, n); if ((n = parse_find_node("focusLast", node))) config_focus_last = parse_bool(doc, n); + if ((n = parse_find_node("underMouse", node))) + config_focus_under_mouse = parse_bool(doc, n); } static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, @@ -480,6 +496,8 @@ static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, if ((n = parse_find_node("policy", node))) if (parse_contains("UnderMouse", doc, n)) config_place_policy = OB_PLACE_POLICY_MOUSE; + if ((n = parse_find_node("center", node))) + config_place_center = parse_bool(doc, n); } static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, @@ -848,11 +866,13 @@ void config_startup(ObParseInst *i) config_focus_follow = FALSE; config_focus_delay = 0; config_focus_raise = FALSE; - config_focus_last = FALSE; + config_focus_last = TRUE; + config_focus_under_mouse = FALSE; parse_register(i, "focus", parse_focus, NULL); config_place_policy = OB_PLACE_POLICY_SMART; + config_place_center = TRUE; parse_register(i, "placement", parse_placement, NULL); @@ -904,7 +924,7 @@ void config_startup(ObParseInst *i) parse_register(i, "keyboard", parse_keyboard, NULL); - config_mouse_threshold = 3; + config_mouse_threshold = 8; config_mouse_dclicktime = 200; bind_default_mouse();