]> Dogcows Code - chaz/tint2/blobdiff - src/taskbar/task.c
rendering engine : _on_change_layout() called when pos/size changed
[chaz/tint2] / src / taskbar / task.c
index af4c369396c87e19c53f7a12e11d2e91576e9ab8..7a5212e794fe9191e8b240c93a11d80f07f2bf99 100644 (file)
@@ -209,7 +209,7 @@ void get_icon (Task *tsk)
        int i;
        Imlib_Image img = NULL;
        XWMHints *hints = 0;
-       long *data = 0;
+       gulong *data = 0;
 
        int k;
        for (k=0; k<TASK_STATE_COUNT; ++k) {
@@ -224,10 +224,9 @@ void get_icon (Task *tsk)
        if (data) {
                // get ARGB icon
                int w, h;
-               long *tmp_data;
+               gulong *tmp_data;
 
                tmp_data = get_best_icon (data, get_icon_count (data, i), i, &w, &h, panel->g_task.icon_size1);
-
 #ifdef __x86_64__
                DATA32 icon_data[w * h];
                int length = w * h;
@@ -343,6 +342,7 @@ void draw_task (void *obj, cairo_t *c)
        Color *config_text;
        int width=0, height;
        Panel *panel = (Panel*)tsk->area.panel;
+       //printf("draw_task %d %d\n", tsk->area.posx, tsk->area.posy);
 
        if (panel->g_task.text) {
                /* Layout */
@@ -386,6 +386,19 @@ void draw_task (void *obj, cairo_t *c)
 }
 
 
+void on_change_task (void *obj)
+{
+       Task *tsk = obj;
+       Panel *panel = (Panel*)tsk->area.panel;
+
+       long value[] = { panel->posx+tsk->area.posx, panel->posy+tsk->area.posy, tsk->area.width, tsk->area.height };
+       XChangeProperty (server.dsp, tsk->win, server.atom._NET_WM_ICON_GEOMETRY, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)value, 4);
+       
+       // reset Pixmap when position/size changed
+       set_task_redraw(tsk);
+}
+
+
 Task *next_task(Task *tsk)
 {
        if (tsk == 0)
This page took 0.026373 seconds and 4 git commands to generate.