X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Ftaskbar%2Ftaskbar.c;h=a1be3ec78236220ec049ec53f0ad2a4dd12df247;hb=e100cb6f8db79e5b3d26c04a405625ca368ee1ea;hp=deb6e04fa07a5b4be8d57ece25cfecddf44f9e32;hpb=abf45e5ca6bb9c715f1455ab898c3a51e26dbf57;p=chaz%2Ftint2 diff --git a/src/taskbar/taskbar.c b/src/taskbar/taskbar.c index deb6e04..a1be3ec 100644 --- a/src/taskbar/taskbar.c +++ b/src/taskbar/taskbar.c @@ -36,8 +36,8 @@ void init_taskbar() { - Panel *panel; - int i, j; + Panel *panel; + int i, j; for (i=0 ; i < nb_panel ; i++) { panel = &panel1[i]; @@ -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); @@ -114,9 +115,9 @@ void init_taskbar() void cleanup_taskbar() { - Panel *panel; + Panel *panel; Taskbar *tskbar; - int i, j; + int i, j; GSList *l0; Task *tsk; @@ -151,11 +152,11 @@ void cleanup_taskbar() Task *task_get_task (Window win) { - Task *tsk; - GSList *l0; - int i, j; + Task *tsk; + GSList *l0; + int i, j; - for (i=0 ; i < nb_panel ; i++) { + for (i=0 ; i < nb_panel ; i++) { for (j=0 ; j < panel1[i].nb_desktop ; j++) { for (l0 = panel1[i].taskbar[j].area.list; l0 ; l0 = l0->next) { tsk = l0->data; @@ -163,24 +164,23 @@ Task *task_get_task (Window win) return tsk; } } - } - return 0; + } + return 0; } void task_refresh_tasklist () { - Window *win, active_win; - int num_results, i, j, k; - GSList *l0; - Task *tsk; - - win = server_get_property (server.root_win, server.atom._NET_CLIENT_LIST, XA_WINDOW, &num_results); + Window *win, active_win; + int num_results, i, j, k; + GSList *l0; + Task *tsk; - if (!win) return; + 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 - active_win = window_get_active (); + // Remove any old and set active win + active_win = window_get_active (); if (task_active) { task_active->area.is_active = 0; task_active = 0; @@ -205,28 +205,28 @@ void task_refresh_tasklist () if (k == num_results) remove_task (tsk); } } - } + } - // Add any new - for (i = 0; i < num_results; i++) - if (!task_get_task (win[i])) - add_task (win[i]); + // Add any new + for (i = 0; i < num_results; i++) + if (!task_get_task (win[i])) + add_task (win[i]); - XFree (win); + XFree (win); } void resize_taskbar(void *obj) { Taskbar *taskbar = (Taskbar*)obj; - Panel *panel = (Panel*)taskbar->area.panel; - Task *tsk; - GSList *l; + Panel *panel = (Panel*)taskbar->area.panel; + Task *tsk; + GSList *l; int task_count; -//printf("resize_taskbar : posx et width des taches\n"); + //printf("resize_taskbar : posx et width des taches\n"); - taskbar->area.redraw = 1; + taskbar->area.redraw = 1; if (panel_horizontal) { int pixel_width, modulo_width=0; @@ -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