X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fconfig.c;h=fe3f9fee2bce686cf2804bbac436378034ec2c53;hb=b9ceca0af9fbad70fe14f087ccdda72d8c7e7cf6;hp=efbcd5c082e363fd554a0a3af17af99698745e7c;hpb=7ef35059d22141cf422ce639fdd6c0f23ecc868a;p=chaz%2Ftint2 diff --git a/src/config.c b/src/config.c index efbcd5c..fe3f9fe 100644 --- a/src/config.c +++ b/src/config.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "common.h" @@ -44,6 +45,7 @@ #include "config.h" #include "window.h" #include "tooltip.h" +#include "timer.h" #ifdef ENABLE_BATTERY #include "battery.h" @@ -51,14 +53,16 @@ // global path char *config_path = 0; -char *thumbnail_path = 0; +char *snapshot_path = 0; // -------------------------------------------------- // backward compatibility static int old_task_icon_size; static Area *area_task; static Area *area_task_active; - +// detect if it's an old config file +// ==1 +static int old_config_file; // temporary list of background static GSList *list_back; @@ -72,7 +76,9 @@ void init_config() // tint2 could reload config, so we cleanup objects cleanup_systray(); +#ifdef ENABLE_BATTERY cleanup_battery(); +#endif cleanup_clock(); cleanup_tooltip(); @@ -84,10 +90,16 @@ void init_config() panel_config.g_task.alpha = 100; panel_config.g_task.alpha_active = 100; systray.sort = 3; + 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); } @@ -162,6 +174,10 @@ void get_action (char *event, int *action) *action = DESKTOP_LEFT; else if (strcmp (event, "desktop_right") == 0) *action = DESKTOP_RIGHT; + else if (strcmp (event, "next_task") == 0) + *action = NEXT_TASK; + else if (strcmp (event, "prev_task") == 0) + *action = PREV_TASK; } @@ -371,6 +387,10 @@ void add_entry (char *key, char *value) memcpy(&panel_config.clock.area.pix.back, &a->pix.back, sizeof(Color)); memcpy(&panel_config.clock.area.pix.border, &a->pix.border, sizeof(Border)); } + else if (strcmp(key, "clock_tooltip") == 0) { + if (strlen(value) > 0) + time_tooltip_format = strdup (value); + } else if (strcmp(key, "clock_lclick_command") == 0) { if (strlen(value) > 0) clock_lclick_command = strdup(value); @@ -472,10 +492,13 @@ void add_entry (char *key, char *value) /* Systray */ else if (strcmp (key, "systray") == 0) { - if(atoi(value) == 1) - systray_enabled = 1; + 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) { + if (old_config_file) + systray_enabled = 1; extract_values(value, &value1, &value2, &value3); systray.area.paddingxlr = systray.area.paddingx = atoi (value1); if (value2) systray.area.paddingy = atoi (value2); @@ -502,16 +525,12 @@ void add_entry (char *key, char *value) else if (strcmp (key, "tooltip") == 0) g_tooltip.enabled = atoi(value); else if (strcmp (key, "tooltip_show_timeout") == 0) { - double timeout = atof(value); - int sec = (int)timeout; - int usec = (timeout-sec)*1e6; - g_tooltip.show_timeout.it_value = (struct timeval){.tv_sec=sec, .tv_usec=usec}; + int timeout_msec = 1000*atof(value); + g_tooltip.show_timeout_msec = timeout_msec; } else if (strcmp (key, "tooltip_hide_timeout") == 0) { - double timeout = atof(value); - int sec = (int)timeout; - int usec = (timeout-sec)*1e6; - g_tooltip.hide_timeout.it_value = (struct timeval){.tv_sec=sec, .tv_usec=usec}; + int timeout_msec = 1000*atof(value); + g_tooltip.hide_timeout_msec = timeout_msec; } else if (strcmp (key, "tooltip_padding") == 0) { extract_values(value, &value1, &value2, &value3); @@ -678,7 +697,7 @@ int config_read () int config_read_file (const char *path) { FILE *fp; - char line[80]; + char line[512]; char *key, *value; if ((fp = fopen(path, "r")) == NULL) return 0;