X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=d986ac1b3111b57a82d90ca0ce924f653a5c3550;hb=41a1d2ea7bd8a69dc0eaf1deb3f3bd96a1a579e5;hp=a456a688004026fdc4ba05390bdca8f5aea4cec4;hpb=d471ffb92ac17c152889a99af8dca2ddaea20f70;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index a456a688..d986ac1b 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -72,14 +72,14 @@ gint config_mouse_dclicktime; gboolean config_menu_warppointer; gboolean config_menu_xorstyle; guint config_menu_hide_delay; +gboolean config_menu_middle; guint config_submenu_show_delay; gboolean config_menu_client_list_icons; GSList *config_menu_files; -gint config_resist_win; -gint config_resist_edge; - +gint config_resist_win; +gint config_resist_edge; gboolean config_resist_layers_below; GSList *config_per_app_settings; @@ -115,14 +115,28 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, gpointer d) { xmlNodePtr app = parse_find_node("application", node->children); - gchar *name; + gchar *name, *class; + gboolean name_set, class_set; + gboolean x_pos_given; while (app) { - gboolean x_pos_given = FALSE; - if (parse_attr_string("name", app, &name)) { + name_set = class_set = x_pos_given = FALSE; + + class_set = parse_attr_string("class", app, &class); + name_set = parse_attr_string("name", app, &name); + if (class_set || name_set) { xmlNodePtr n, c; ObAppSettings *settings = g_new0(ObAppSettings, 1); - settings->name = name; + + if (name_set) + settings->name = name; + else + settings->name = NULL; + if (class_set) + settings->class = class; + else + settings->class = NULL; + if (!parse_attr_string("role", app, &settings->role)) settings->role = NULL; @@ -582,6 +596,8 @@ static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_menu_xorstyle = parse_bool(doc, n); if ((n = parse_find_node("hideDelay", node))) config_menu_hide_delay = parse_int(doc, n); + if ((n = parse_find_node("middle", node))) + config_menu_middle = parse_bool(doc, n); if ((n = parse_find_node("submenuShowDelay", node))) config_submenu_show_delay = parse_int(doc, n); if ((n = parse_find_node("desktopMenuIcons", node))) @@ -779,6 +795,7 @@ void config_startup(ObParseInst *i) config_menu_warppointer = TRUE; config_menu_xorstyle = TRUE; config_menu_hide_delay = 250; + config_menu_middle = TRUE; config_submenu_show_delay = 0; config_menu_client_list_icons = TRUE; config_menu_files = NULL; @@ -810,6 +827,7 @@ void config_shutdown() ObAppSettings *itd = (ObAppSettings *)it->data; g_free(itd->name); g_free(itd->role); + g_free(itd->class); g_free(it->data); } g_slist_free(config_per_app_settings);