X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=1a3e6ddf5af908977d7fe55834a4f6fbe6f3c365;hb=4d2ccf19168a4089a6a0de0109610479ec6d5507;hp=857255faf840635254cd61e903893488a94fcf74;hpb=c590a83207ed5825b513e2278789ed13f55574b2;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index 857255fa..1a3e6ddf 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -111,7 +111,7 @@ ObAppSettings* config_create_app_settings(void) settings->type = -1; settings->decor = -1; settings->shade = -1; - settings->monitor_type = 0; + settings->monitor_type = OB_PLACE_MONITOR_ANY; settings->monitor = -1; settings->focus = -1; settings->desktop = 0; @@ -136,7 +136,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_type, 0); + copy_if(monitor_type, OB_PLACE_MONITOR_ANY); copy_if(monitor, -1); copy_if(focus, -1); copy_if(desktop, 0); @@ -291,19 +291,19 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d) settings->pos_given = TRUE; } - if (settings->pos_given && - (c = obt_xml_find_node(n->children, "monitor"))) + /* monitor can be set without setting x or y */ + if ((c = obt_xml_find_node(n->children, "monitor"))) if (!obt_xml_node_contains(c, "default")) { gchar *s = obt_xml_node_string(c); if (!g_ascii_strcasecmp(s, "mouse")) settings->monitor_type = - OB_APP_SETTINGS_MONITOR_MOUSE; + OB_PLACE_MONITOR_MOUSE; else if (!g_ascii_strcasecmp(s, "active")) settings->monitor_type = - OB_APP_SETTINGS_MONITOR_ACTIVE; + OB_PLACE_MONITOR_ACTIVE; else if (!g_ascii_strcasecmp(s, "primary")) settings->monitor_type = - OB_APP_SETTINGS_MONITOR_PRIMARY; + OB_PLACE_MONITOR_PRIMARY; else settings->monitor = obt_xml_node_int(c); g_free(s); @@ -581,9 +581,13 @@ static void parse_placement(xmlNodePtr node, gpointer d) node = node->children; - if ((n = obt_xml_find_node(node, "policy"))) + if ((n = obt_xml_find_node(node, "policy"))) { if (obt_xml_node_contains(n, "UnderMouse")) config_place_policy = OB_PLACE_POLICY_MOUSE; + else if (obt_xml_node_contains(n, "LeastOverlap")) + config_place_policy = OB_PLACE_POLICY_LEASTOVERLAP; + + } if ((n = obt_xml_find_node(node, "center"))) config_place_center = obt_xml_node_bool(n); if ((n = obt_xml_find_node(node, "monitor"))) {