all repos — tint2 @ d6827560120b1ee46d3f541a1219ffcc2b22f391

fork of the tint2 desktop panel for my custom setup - only minimized windows across all desktops for the taskbar

safety measures in thumbnail code
Chris Lee @klee93
commit

d6827560120b1ee46d3f541a1219ffcc2b22f391

parent

b6c19da36c6dea4880707267176651fa60aba5ab

1 files changed, 4 insertions(+), 1 deletions(-)

jump to
M src/util/window.csrc/util/window.c

@@ -379,6 +379,7 @@ u_int32_t c4 = data[i + tw + 1];

u_int32_t b = (5 * (c1 & bmask) + 1 * (c2 & bmask) + 1 * (c3 & bmask) + 1 * (c4 & bmask)) / 8; u_int32_t g = (5 * (c1 & gmask) + 1 * (c2 & gmask) + 1 * (c3 & gmask) + 1 * (c4 & gmask)) / 8; u_int32_t r = (5 * (c1 & rmask) + 1 * (c2 & rmask) + 1 * (c3 & rmask) + 1 * (c4 & rmask)) / 8; + g_assert(i < tw * th); data[i] = (r & rmask) | (g & gmask) | (b & bmask); } }

@@ -445,7 +446,7 @@ fprintf(stderr, RED "tint2: !shmget" RESET "\n");

goto err1; } shminfo.shmaddr = ximg->data = (char *)shmat(shminfo.shmid, 0, 0); - if (!shminfo.shmaddr) { + if (shminfo.shmaddr == (void*)-1) { fprintf(stderr, RED "tint2: !shmat" RESET "\n"); goto err2; }

@@ -516,6 +517,7 @@ 8;

u_int32_t r = ((c1 & rmask) + (c2 & rmask) + (c3 & rmask) + (c4 & rmask) + (c5 & rmask) * 2 + (c6 & rmask) + (c7 & rmask)) / 8; + g_assert(j < tw * th); data[j] = (r & rmask) | (g & gmask) | (b & bmask); } }

@@ -542,6 +544,7 @@ }

// 2nd pass smooth_thumbnail(result); + cairo_surface_mark_dirty(result); if (ximg) { XDestroyImage(ximg);