X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fopenbox;a=blobdiff_plain;f=openbox%2Fconfig.c;h=64bf981c1bf0371cd2718fb2b8b0f65b4f619976;hp=c21b47d88554162d189ebc6f2ff66c0ba90265c0;hb=HEAD;hpb=9325c92056ff4268db2263cdf8c07bb529e158aa diff --git a/openbox/config.c b/openbox/config.c index c21b47d8..64bf981c 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -37,6 +37,7 @@ gboolean config_focus_under_mouse; gboolean config_unfocus_leave; ObPlacePolicy config_place_policy; +gboolean config_place_center; ObPlaceMonitor config_place_monitor; guint config_primary_monitor_index; @@ -158,13 +159,10 @@ void config_app_settings_copy_non_defaults(const ObAppSettings *src, /* monitor is copied above */ } - if (src->size_given) { - dst->size_given = TRUE; - dst->width_num = src->width_num; - dst->width_denom = src->width_denom; - dst->height_num = src->height_num; - dst->height_denom = src->height_denom; - } + dst->width_num = src->width_num; + dst->width_denom = src->width_denom; + dst->height_num = src->height_num; + dst->height_denom = src->height_denom; } void config_parse_relative_number(gchar *s, gint *num, gint *denom) @@ -216,7 +214,6 @@ static void parse_single_per_app_settings(xmlNodePtr app, { xmlNodePtr n, c; gboolean x_pos_given = FALSE; - gboolean width_given = FALSE; if ((n = obt_xml_find_node(app->children, "decor"))) if (!obt_xml_node_contains(n, "default")) @@ -267,20 +264,22 @@ static void parse_single_per_app_settings(xmlNodePtr app, config_parse_relative_number(s, &settings->width_num, &settings->width_denom); - if (settings->width_num > 0 && settings->width_denom >= 0) - width_given = TRUE; + if (settings->width_num <= 0 || settings->width_denom < 0) + settings->width_num = settings->width_denom = 0; g_free(s); } } - if (width_given && (c = obt_xml_find_node(n->children, "height"))) { - gchar *s = obt_xml_node_string(c); - config_parse_relative_number(s, - &settings->height_num, - &settings->height_denom); - if (settings->height_num > 0 && settings->height_denom >= 0) - settings->size_given = TRUE; - g_free(s); + if ((c = obt_xml_find_node(n->children, "height"))) { + if (!obt_xml_node_contains(c, "default")) { + gchar *s = obt_xml_node_string(c); + config_parse_relative_number(s, + &settings->height_num, + &settings->height_denom); + if (settings->height_num <= 0 || settings->height_denom < 0) + settings->height_num = settings->height_denom = 0; + g_free(s); + } } } @@ -635,9 +634,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; + } + if ((n = obt_xml_find_node(node, "center"))) { + config_place_center = obt_xml_node_bool(n); + } if ((n = obt_xml_find_node(node, "monitor"))) { if (obt_xml_node_contains(n, "active")) config_place_monitor = OB_PLACE_MONITOR_ACTIVE; @@ -942,9 +945,9 @@ static void parse_menu(xmlNodePtr node, gpointer d) config_menu_manage_desktops = obt_xml_node_bool(n); if ((n = obt_xml_find_node(node, "showIcons"))) { config_menu_show_icons = obt_xml_node_bool(n); -#ifndef USE_IMLIB2 +#if !defined(USE_IMLIB2) && !defined(USE_LIBRSVG) if (config_menu_show_icons) - g_message(_("Openbox was compiled without Imlib2 image loading support. Icons in menus will not be loaded.")); + g_message(_("Openbox was compiled without image loading support. Icons in menus will not be loaded.")); #endif } @@ -1069,6 +1072,7 @@ void config_startup(ObtXmlInst *i) obt_xml_register(i, "focus", parse_focus, NULL); config_place_policy = OB_PLACE_POLICY_SMART; + config_place_center = TRUE; config_place_monitor = OB_PLACE_MONITOR_PRIMARY; config_primary_monitor_index = 1;