]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.c
add role matching to per app settings and fix a small memleak in the code that frees...
[chaz/openbox] / openbox / config.c
index 6df57241edd60855ef817e093e31cea953cf46d0..5b669685f334f4fff8c3f4bd2e2d77e59915cf8a 100644 (file)
@@ -124,6 +124,8 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
             xmlNodePtr n, c;
             ObAppSettings *settings = g_new0(ObAppSettings, 1);
             settings->name = name;
+            if (!parse_attr_string("role", app, &settings->role))
+                settings->role = NULL;
 
             settings->decor = TRUE;
             if ((n = parse_find_node("decor", app->children)))
@@ -148,10 +150,10 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
                 if (x_pos_given && (c = parse_find_node("y", n->children))) {
                     if (!strcmp(parse_string(doc, c), "center")) {
                         settings->center_y = TRUE;
-                        settings->pos_given;
+                        settings->pos_given = TRUE;
                     } else {
                         settings->position.y = parse_int(doc, c);
-                        settings->pos_given;
+                        settings->pos_given = TRUE;
                     }
                 }
             }
@@ -755,7 +757,11 @@ void config_shutdown()
         g_free(it->data);
     g_slist_free(config_menu_files);
 
-    for (it = config_per_app_settings; it; it = g_slist_next(it))
+    for (it = config_per_app_settings; it; it = g_slist_next(it)) {
+        ObAppSettings *itd = (ObAppSettings *)it->data;
+        g_free(itd->name);
+        g_free(itd->role);
         g_free(it->data);
+    }
     g_slist_free(config_per_app_settings);
 }
This page took 0.020563 seconds and 4 git commands to generate.