]> Dogcows Code - chaz/tint2/blobdiff - src/config.c
cleanup default value on SIGUSR1
[chaz/tint2] / src / config.c
index deb08ce5fa30d15049bcd587803d8a66ca790bb9..30aa6e122f700d614d63b93501ddb58f2f9768aa 100644 (file)
@@ -73,6 +73,7 @@ void init_config()
        Background transparent_bg;
        memset(&transparent_bg, 0, sizeof(Background));
        g_array_append_val(backgrounds, transparent_bg);
+printf("*** init_config()\n");
 
        // tint2 could reload config, so we cleanup objects
        cleanup_systray();
@@ -87,9 +88,6 @@ void init_config()
                pango_font_description_free(panel_config.g_task.font_desc);
        }
        memset(&panel_config, 0, sizeof(Panel));
-       int i;
-       for (i=0; i<TASK_STATE_COUNT; ++i)
-               panel_config.g_task.alpha[i] = 100;
        systray.alpha = 100;
        systray.sort = 3;
        old_config_file = 1;
@@ -97,7 +95,6 @@ void init_config()
        // window manager's menu default value == false
        wm_menu = 0;
        max_tick_urgent = 7;
-       panel_config.g_taskbar.bg = panel_config.g_taskbar.bg_active = 0;
 
        // flush pango cache if possible
        //pango_xft_shutdown_display(server.dsp, server.screen);
@@ -189,6 +186,30 @@ int get_task_status(char* status)
 }
 
 
+int config_get_monitor(char* monitor)
+{
+       if (strcmp(monitor, "all") == 0)
+               return -1;
+       else {
+               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<server.nb_monitor; ++i) {
+                               j = 0;
+                               while (server.monitor[i].names[j] != 0) {
+                                       if (strcmp(monitor, server.monitor[i].names[j++]) == 0)
+                                               return i;
+                               }
+                       }
+               }
+       }
+       return -1;
+}
+
 void add_entry (char *key, char *value)
 {
        char *value1=0, *value2=0, *value3=0;
@@ -220,11 +241,7 @@ void add_entry (char *key, char *value)
 
        /* Panel */
        else if (strcmp (key, "panel_monitor") == 0) {
-               if (strcmp (value, "all") == 0) panel_config.monitor = -1;
-               else {
-                       panel_config.monitor = atoi (value);
-                       if (panel_config.monitor > 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);
@@ -511,12 +528,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);
@@ -600,6 +618,8 @@ void add_entry (char *key, char *value)
        else if (strcmp(key, "strut_policy") == 0) {
                if (strcmp(value, "follow_size") == 0)
                        panel_strut_policy = STRUT_FOLLOW_SIZE;
+               else if (strcmp(value, "none") == 0)
+                       panel_strut_policy = STRUT_NONE;
                else
                        panel_strut_policy = STRUT_MINIMUM;
        }
@@ -607,7 +627,7 @@ void add_entry (char *key, char *value)
                panel_autohide_height = atoi(value);
 
        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);
This page took 0.024027 seconds and 4 git commands to generate.