X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=b6e7770f61a7d70a46a957dff1c4ae6a5064cc79;hb=b99f9e6abd88d02cba0c631cd688c00e1c9905cd;hp=72aa88a914e3a366482d6c88118d9e95d9e6985e;hpb=74f36c587ca5ae456434115ae28e3e07bf8a970c;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index 72aa88a9..b6e7770f 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -26,10 +26,11 @@ gboolean config_focus_new; gboolean config_focus_follow; -gboolean config_focus_last; guint config_focus_delay; guint config_focus_raise; +ObPlacePolicy config_place_policy; + char *config_theme; gchar *config_title_layout; @@ -47,6 +48,8 @@ gint config_dock_y; ObOrientation config_dock_orient; gboolean config_dock_hide; guint config_dock_hide_delay; +guint config_dock_app_move_button; +guint config_dock_app_move_modifiers; guint config_keyboard_reset_keycode; guint config_keyboard_reset_state; @@ -197,14 +200,24 @@ static void parse_focus(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_focus_new = parse_bool(doc, n); if ((n = parse_find_node("followMouse", node))) config_focus_follow = parse_bool(doc, n); - if ((n = parse_find_node("focusLast", node))) - config_focus_last = parse_bool(doc, n); if ((n = parse_find_node("focusDelay", node))) config_focus_delay = parse_int(doc, n) * 1000; if ((n = parse_find_node("raiseOnFocus", node))) config_focus_raise = parse_bool(doc, n); } +static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, + void *d) +{ + xmlNodePtr n; + + node = node->children; + + if ((n = parse_find_node("policy", node))) + if (parse_contains("UnderMouse", doc, n)) + config_place_policy = OB_PLACE_POLICY_MOUSE; +} + static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) { @@ -309,11 +322,11 @@ static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) } if ((n = parse_find_node("stacking", node))) { if (parse_contains("top", doc, n)) - config_dock_layer = OB_STACKING_LAYER_TOP; + config_dock_layer = OB_STACKING_LAYER_DOCK_ABOVE; else if (parse_contains("normal", doc, n)) config_dock_layer = OB_STACKING_LAYER_NORMAL; else if (parse_contains("bottom", doc, n)) - config_dock_layer = OB_STACKING_LAYER_BELOW; + config_dock_layer = OB_STACKING_LAYER_DOCK_BELOW; } if ((n = parse_find_node("direction", node))) { if (parse_contains("horizontal", doc, n)) @@ -325,6 +338,17 @@ static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) config_dock_hide = parse_bool(doc, n); if ((n = parse_find_node("hideDelay", node))) config_dock_hide_delay = parse_int(doc, n) * 1000; + if ((n = parse_find_node("moveButton", node))) { + gchar *str = parse_string(doc, n); + guint b, s; + if (translate_button(str, &s, &b)) { + config_dock_app_move_button = b; + config_dock_app_move_modifiers = s; + } else { + g_warning("invalid button '%s'", str); + } + g_free(str); + } } static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) @@ -460,12 +484,15 @@ void config_startup(ObParseInst *i) { config_focus_new = TRUE; config_focus_follow = FALSE; - config_focus_last = TRUE; config_focus_delay = 0; config_focus_raise = FALSE; parse_register(i, "focus", parse_focus, NULL); + config_place_policy = OB_PLACE_POLICY_SMART; + + parse_register(i, "placement", parse_placement, NULL); + config_theme = NULL; config_title_layout = g_strdup("NLIMC"); @@ -481,7 +508,7 @@ void config_startup(ObParseInst *i) parse_register(i, "resize", parse_resize, NULL); - config_dock_layer = OB_STACKING_LAYER_TOP; + config_dock_layer = OB_STACKING_LAYER_DOCK_ABOVE; config_dock_pos = OB_DIRECTION_NORTHEAST; config_dock_floating = FALSE; config_dock_x = 0; @@ -489,6 +516,8 @@ void config_startup(ObParseInst *i) config_dock_orient = OB_ORIENTATION_VERT; config_dock_hide = FALSE; config_dock_hide_delay = 300; + config_dock_app_move_button = 2; /* middle */ + config_dock_app_move_modifiers = 0; parse_register(i, "dock", parse_dock, NULL);