X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=73302dfd01ba6f65265de12b1f03eb4b1c811b63;hb=a067628051f5ee91f6e759ff85c8e31a7123d571;hp=d27451788481a9a433503249c7032999fdff5fd1;hpb=0e92465751019197a19680c56984664afb7c7999;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index d2745178..73302dfd 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -40,6 +40,9 @@ ObPlacePolicy config_place_policy; gboolean config_place_center; ObPlaceMonitor config_place_monitor; +guint config_primary_monitor_index; +ObPlaceMonitor config_primary_monitor; + StrutPartial config_margins; gchar *config_theme; @@ -128,6 +131,7 @@ void config_app_settings_copy_non_defaults(const ObAppSettings *src, copy_if(type, (ObClientType)-1); copy_if(decor, -1); copy_if(shade, -1); + copy_if(monitor, -1); copy_if(focus, -1); copy_if(desktop, 0); copy_if(layer, -2); @@ -267,7 +271,7 @@ static void parse_per_app_settings(ObParseInst *inst, xmlDocPtr doc, if (!g_ascii_strcasecmp(s, "mouse")) settings->monitor = 0; else - settings->monitor = parse_int(doc, c) + 1; + settings->monitor = parse_int(doc, c); g_free(s); } @@ -443,8 +447,13 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_mouse_threshold = parse_int(doc, n); if ((n = parse_find_node("doubleClickTime", node))) config_mouse_dclicktime = parse_int(doc, n); - if ((n = parse_find_node("screenEdgeWarpTime", node))) + if ((n = parse_find_node("screenEdgeWarpTime", node))) { config_mouse_screenedgetime = parse_int(doc, n); + /* minimum value of 25 for this property, when it is 1 and you hit the + edge it basically never stops */ + if (config_mouse_screenedgetime && config_mouse_screenedgetime < 25) + config_mouse_screenedgetime = 25; + } n = parse_find_node("context", node); while (n) { @@ -523,6 +532,13 @@ static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, else if (parse_contains("mouse", doc, n)) config_place_monitor = OB_PLACE_MONITOR_MOUSE; } + if ((n = parse_find_node("primaryMonitor", node))) { + config_primary_monitor_index = parse_int(doc, n); + if (!config_primary_monitor_index) { + if (parse_contains("mouse", doc, n)) + config_primary_monitor = OB_PLACE_MONITOR_MOUSE; + } + } } static void parse_margins(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, @@ -925,6 +941,9 @@ void config_startup(ObParseInst *i) config_place_center = TRUE; config_place_monitor = OB_PLACE_MONITOR_ANY; + config_primary_monitor_index = 1; + config_primary_monitor = OB_PLACE_MONITOR_ACTIVE; + parse_register(i, "placement", parse_placement, NULL); STRUT_PARTIAL_SET(config_margins, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);