X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=62ca822fae85bf38367a8e3f2975159355c31a78;hb=def76092b587e7e9a2b212dc5211773e336525e1;hp=aebf433fbb00516fb505c2a7ca6f17a683891ebf;hpb=fa962c1604bac1b5a6c3656b71c3145436f2392b;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index aebf433f..62ca822f 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -29,11 +29,13 @@ gboolean config_focus_follow; guint config_focus_delay; guint config_focus_raise; -char *config_theme; +ObPlacePolicy config_place_policy; + +gchar *config_theme; gchar *config_title_layout; -int config_desktops_num; +gint config_desktops_num; GSList *config_desktops_names; gboolean config_redraw_resize; @@ -55,9 +57,6 @@ guint config_keyboard_reset_state; gint config_mouse_threshold; gint config_mouse_dclicktime; -gboolean config_dialog_focus; -gboolean config_dialog_desktop; - GSList *config_menu_files; gint config_resist_win; @@ -76,7 +75,7 @@ gint config_resist_edge; static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, GList *keylist) { - char *key; + gchar *key; ObAction *action; xmlNodePtr n, nact; GList *it; @@ -113,7 +112,7 @@ static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, } static void parse_keyboard(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, - void *d) + gpointer d) { keyboard_unbind_all(); @@ -131,11 +130,11 @@ static void parse_keyboard(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, */ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, - void *d) + gpointer d) { xmlNodePtr n, nbut, nact; - char *buttonstr; - char *contextstr; + gchar *buttonstr; + gchar *contextstr; ObUserAction uact; ObMouseAction mact; ObAction *action; @@ -191,7 +190,7 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, } static void parse_focus(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, - void *d) + gpointer d) { xmlNodePtr n; @@ -207,8 +206,20 @@ static void parse_focus(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_focus_raise = parse_bool(doc, n); } +static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, + gpointer 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) + gpointer d) { xmlNodePtr n; @@ -229,7 +240,7 @@ static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, } static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, - void *d) + gpointer d) { xmlNodePtr n; @@ -259,7 +270,7 @@ static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, } static void parse_resize(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, - void *d) + gpointer d) { xmlNodePtr n; @@ -269,7 +280,8 @@ static void parse_resize(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_redraw_resize = parse_bool(doc, n); } -static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) +static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, + gpointer d) { xmlNodePtr n; @@ -311,11 +323,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; + config_dock_layer = OB_STACKING_LAYER_DOCK_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)) @@ -340,7 +352,8 @@ static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) } } -static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) +static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, + gpointer d) { for (node = node->children; node; node = node->next) { if (!xmlStrcasecmp(node->name, (const xmlChar*) "file")) { @@ -355,7 +368,7 @@ static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) } static void parse_resistance(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, - void *d) + gpointer d) { xmlNodePtr n; @@ -478,6 +491,10 @@ void config_startup(ObParseInst *i) 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"); @@ -493,7 +510,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;