]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.c
LeastOverlap placement option (Fix bug 5385)
[chaz/openbox] / openbox / config.c
index 9067011a1d395bdf5d0f1d2f1e103f41a9275c70..1a3e6ddf5af908977d7fe55834a4f6fbe6f3c365 100644 (file)
@@ -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);
@@ -297,13 +297,13 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d)
                         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"))) {
This page took 0.025042 seconds and 4 git commands to generate.