X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fconfig.c;h=1175660b4d45e74c13717a2f90ca50c825cdf1d8;hb=caf1ea3215aedd3efc8932349227c5c3e2d289d9;hp=f825d5b9ce44d045690964234fbf2d9aa3c0f9a9;hpb=1ac25b2b66dab98e7c85c4f483d202f95b432828;p=chaz%2Ftint2 diff --git a/src/config.c b/src/config.c index f825d5b..1175660 100644 --- a/src/config.c +++ b/src/config.c @@ -52,58 +52,26 @@ #endif // global path -char *config_path = 0; -char *snapshot_path = 0; +char *config_path; +char *snapshot_path; // -------------------------------------------------- // backward compatibility -static int old_task_icon_size; -// detect if it's an old config file -// ==1 +// detect if it's an old config file (==1) static int old_config_file; -void init_config() +void default_config() { - if (backgrounds) - g_array_free(backgrounds, 1); - backgrounds = g_array_new(0, 0, sizeof(Background)); - - // append full transparency background - Background transparent_bg; - memset(&transparent_bg, 0, sizeof(Background)); - g_array_append_val(backgrounds, transparent_bg); - - // tint2 could reload config, so we cleanup objects - cleanup_systray(); -#ifdef ENABLE_BATTERY - cleanup_battery(); -#endif - cleanup_clock(); - cleanup_tooltip(); - - // panel's default value - if (panel_config.g_task.font_desc) { - pango_font_description_free(panel_config.g_task.font_desc); - } - memset(&panel_config, 0, sizeof(Panel)); - systray.alpha = 100; - systray.sort = 3; + config_path = 0; + snapshot_path = 0; old_config_file = 1; - - // window manager's menu default value == false - wm_menu = 0; - max_tick_urgent = 7; - - // flush pango cache if possible - //pango_xft_shutdown_display(server.dsp, server.screen); - //PangoFontMap *font_map = pango_xft_get_font_map(server.dsp, server.screen); - //pango_fc_font_map_shutdown(font_map); } - void cleanup_config() { + if (config_path) g_free(config_path); + if (snapshot_path) g_free(snapshot_path); } @@ -185,6 +153,32 @@ int get_task_status(char* status) } +int config_get_monitor(char* monitor) +{ + if (strcmp(monitor, "all") != 0) { + char* endptr; + int ret_int = strtol(monitor, &endptr, 10); + if (*endptr == 0) + return ret_int-1; + else { + // monitor specified by name, not by index + int i, j; + for (i=0; i 0) panel_config.monitor -= 1; - } + panel_config.monitor = config_get_monitor(value); } else if (strcmp (key, "panel_size") == 0) { extract_values(value, &value1, &value2, &value3); @@ -293,10 +283,10 @@ void add_entry (char *key, char *value) else if (strcmp (key, "panel_layer") == 0) { if (strcmp(value, "bottom") == 0) panel_layer = BOTTOM_LAYER; - else if (strcmp(value, "normal") == 0) - panel_layer = NORMAL_LAYER; else if (strcmp(value, "top") == 0) panel_layer = TOP_LAYER; + else + panel_layer = NORMAL_LAYER; } /* Battery */ @@ -507,12 +497,13 @@ void add_entry (char *key, char *value) } /* Systray */ - else if (strcmp (key, "systray") == 0) { + // systray disabled in snapshot mode + else if (strcmp (key, "systray") == 0 && snapshot_path == 0) { systray_enabled = atoi(value); // systray is latest option added. files without 'systray' are old. old_config_file = 0; } - else if (strcmp (key, "systray_padding") == 0) { + else if (strcmp (key, "systray_padding") == 0 && snapshot_path == 0) { if (old_config_file) systray_enabled = 1; extract_values(value, &value1, &value2, &value3); @@ -601,11 +592,16 @@ void add_entry (char *key, char *value) else panel_strut_policy = STRUT_MINIMUM; } - else if (strcmp(key, "autohide_height") == 0) + else if (strcmp(key, "autohide_height") == 0) { panel_autohide_height = atoi(value); + if (panel_autohide_height == 0) { + // autohide need height > 0 + panel_autohide_height = 1; + } + } else - fprintf(stderr, "tint2 : invalid option \"%s\", correct your config file\n", key); + fprintf(stderr, "tint2 : invalid option \"%s\",\n upgrade tint2 or correct your config file\n", key); if (value1) free (value1); if (value2) free (value2); @@ -677,9 +673,6 @@ int config_read_file (const char *path) } fclose (fp); - if (old_task_icon_size) { - panel_config.g_task.area.paddingy = ((int)panel_config.area.height - (2 * panel_config.area.paddingy) - old_task_icon_size) / 2; - } return 1; }