]> Dogcows Code - chaz/tint2/blobdiff - src/taskbar/taskbar.c
fixed segfault
[chaz/tint2] / src / taskbar / taskbar.c
index deb6e04fa07a5b4be8d57ece25cfecddf44f9e32..6fe5173aa1306eb33860aa183d1ab5877cc2fb66 100644 (file)
@@ -72,7 +72,7 @@ void init_taskbar()
                else {
                        panel->g_task.area.posx = panel->g_taskbar.posx + panel->g_taskbar.pix.border.width + panel->g_taskbar.paddingy;
                        panel->g_task.area.width = panel->area.width - (2 * panel->g_task.area.posx);
-                       panel->g_task.area.height = panel->g_task.maximum_width;
+                       panel->g_task.area.height = panel->g_task.maximum_height;
                }
 
                if (panel->g_task.area.pix.border.rounded > panel->g_task.area.height/2) {
@@ -84,11 +84,10 @@ void init_taskbar()
                int height_ink, height;
                get_text_size(panel->g_task.font_desc, &height_ink, &height, panel->area.height, "TAjpg", 5);
 
-               if (!panel->g_task.maximum_width)
+               if (!panel->g_task.maximum_width && panel_horizontal)
                        panel->g_task.maximum_width = server.monitor[panel->monitor].width;
 
-               // add task_icon_size
-               panel->g_task.text_posx = panel->g_task.area.paddingxlr + panel->g_task.area.pix.border.width;
+               panel->g_task.text_posx = panel->g_task.area.pix.border.width + panel->g_task.area.paddingxlr;
                panel->g_task.text_posy = (panel->g_task.area.height - height) / 2.0;
                if (panel->g_task.icon) {
                        panel->g_task.icon_size1 = panel->g_task.area.height - (2 * panel->g_task.area.paddingy);
@@ -104,6 +103,8 @@ void init_taskbar()
                        tskbar = &panel->taskbar[j];
                        memcpy(&tskbar->area, &panel->g_taskbar, sizeof(Area));
                        tskbar->desktop = j;
+                       if (j == server.desktop && tskbar->area.use_active)
+                               tskbar->area.is_active = 1;
 
                        // add taskbar to the panel
                        panel->area.list = g_slist_append(panel->area.list, tskbar);
@@ -176,7 +177,6 @@ void task_refresh_tasklist ()
    Task *tsk;
 
    win = server_get_property (server.root_win, server.atom._NET_CLIENT_LIST, XA_WINDOW, &num_results);
-
    if (!win) return;
 
    // Remove any old and set active win
@@ -275,14 +275,14 @@ void resize_taskbar(void *obj)
 
                // new task width for 'desktop'
                task_count = g_slist_length(taskbar->area.list);
-               if (!task_count) pixel_height = panel->g_task.maximum_width;
+               if (!task_count) pixel_height = panel->g_task.maximum_height;
                else {
                        taskbar_height = taskbar->area.height - (2 * panel->g_taskbar.pix.border.width) - (2 * panel->g_taskbar.paddingxlr);
                        if (task_count>1) taskbar_height -= ((task_count-1) * panel->g_taskbar.paddingx);
 
                        pixel_height = taskbar_height / task_count;
-                       if (pixel_height > panel->g_task.maximum_width)
-                               pixel_height = panel->g_task.maximum_width;
+                       if (pixel_height > panel->g_task.maximum_height)
+                               pixel_height = panel->g_task.maximum_height;
                        else
                                modulo_height = taskbar_height % task_count;
                }
@@ -292,7 +292,7 @@ void resize_taskbar(void *obj)
                else {
                        taskbar->task_width = pixel_height;
                        taskbar->task_modulo = modulo_height;
-                       taskbar->text_width = taskbar->area.width - (2 * taskbar->area.paddingy) - (2 * taskbar->area.pix.border.width);
+                       taskbar->text_width = taskbar->area.width - (2 * panel->g_taskbar.paddingy) - panel->g_task.text_posx - panel->g_task.area.pix.border.width - panel->g_task.area.paddingx;
                }
 
                // change pos_y and height for all tasks
This page took 0.024897 seconds and 4 git commands to generate.