X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=573ce4c2abedfcc64440806150e280deff2a4b75;hb=b9b0284e3e4651618039e9a25aa7056f9596cb01;hp=6904759ce6e5bb31eb54bb7ab401049b3d26b7db;hpb=b3cc8f48768c10db97fe18e0702285b110e5978b;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index 6904759c..573ce4c2 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -86,9 +86,10 @@ guint config_dock_app_move_modifiers; guint config_keyboard_reset_keycode; guint config_keyboard_reset_state; -gint config_mouse_threshold; -gint config_mouse_dclicktime; -gint config_mouse_screenedgetime; +gint config_mouse_threshold; +gint config_mouse_dclicktime; +gint config_mouse_screenedgetime; +gboolean config_mouse_screenedgewarp; guint config_menu_hide_delay; gboolean config_menu_middle; @@ -106,7 +107,7 @@ GSList *config_per_app_settings; ObAppSettings* config_create_app_settings(void) { - ObAppSettings *settings = g_new0(ObAppSettings, 1); + ObAppSettings *settings = g_slice_new0(ObAppSettings); settings->type = -1; settings->decor = -1; settings->shade = -1; @@ -200,8 +201,9 @@ static void config_parse_gravity_coord(xmlNodePtr node, GravityCoord *c) static void parse_per_app_settings(xmlNodePtr node, gpointer d) { xmlNodePtr app = obt_xml_find_node(node->children, "application"); - gchar *name = NULL, *class = NULL, *role = NULL, *type_str = NULL; - gboolean name_set, class_set, type_set, role_set; + gchar *name = NULL, *class = NULL, *role = NULL, *title = NULL, + *type_str = NULL; + gboolean name_set, class_set, type_set, role_set, title_set; ObClientType type; gboolean x_pos_given; @@ -212,6 +214,7 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d) name_set = obt_xml_attr_string(app, "name", &name); type_set = obt_xml_attr_string(app, "type", &type_str); role_set = obt_xml_attr_string(app, "role", &role); + title_set = obt_xml_attr_string(app, "title", &title); /* validate the type tho */ if (type_set) { @@ -235,9 +238,9 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d) type_set = FALSE; /* not valid! */ } - if (class_set || name_set || role_set || type_set) { + if (class_set || name_set || role_set || title_set || type_set) { xmlNodePtr n, c; - ObAppSettings *settings = config_create_app_settings();; + ObAppSettings *settings = config_create_app_settings(); if (name_set) settings->name = g_pattern_spec_new(name); @@ -248,6 +251,9 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d) if (role_set) settings->role = g_pattern_spec_new(role); + if (title_set) + settings->title = g_pattern_spec_new(title); + if (type_set) settings->type = type; @@ -352,7 +358,8 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d) g_free(name); g_free(class); g_free(role); - name = class = role = NULL; + g_free(title); + name = class = role = title = NULL; } app = obt_xml_find_node(app->next, "application"); @@ -459,6 +466,8 @@ static void parse_mouse(xmlNodePtr node, gpointer d) if (config_mouse_screenedgetime && config_mouse_screenedgetime < 25) config_mouse_screenedgetime = 25; } + if ((n = obt_xml_find_node(node, "screenEdgeWarpMouse"))) + config_mouse_screenedgewarp = obt_xml_node_bool(n); n = obt_xml_find_node(node, "context"); while (n) { @@ -979,6 +988,8 @@ void config_startup(ObtXmlInst *i) config_font_inactivewindow = NULL; config_font_menuitem = NULL; config_font_menutitle = NULL; + config_font_activeosd = NULL; + config_font_inactiveosd = NULL; obt_xml_register(i, "theme", parse_theme, NULL); @@ -1022,6 +1033,7 @@ void config_startup(ObtXmlInst *i) config_mouse_threshold = 8; config_mouse_dclicktime = 200; config_mouse_screenedgetime = 400; + config_mouse_screenedgewarp = FALSE; bind_default_mouse(); @@ -1034,7 +1046,7 @@ void config_startup(ObtXmlInst *i) config_menu_hide_delay = 250; config_menu_middle = FALSE; - config_submenu_show_delay = 200; + config_submenu_show_delay = 100; config_submenu_hide_delay = 400; config_menu_manage_desktops = TRUE; config_menu_files = NULL; @@ -1074,8 +1086,9 @@ void config_shutdown(void) ObAppSettings *itd = (ObAppSettings *)it->data; if (itd->name) g_pattern_spec_free(itd->name); if (itd->role) g_pattern_spec_free(itd->role); + if (itd->title) g_pattern_spec_free(itd->title); if (itd->class) g_pattern_spec_free(itd->class); - g_free(it->data); + g_slice_free(ObAppSettings, it->data); } g_slist_free(config_per_app_settings); }