all repos — tint2 @ 7fdcd2fbc97b5e52d07f740a9712050dd6380f65

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

*fix* set _NET_WM_ICON_GEOMETRY (fixes issue 36)
*fix* updated ChangeLog



git-svn-id: http://tint2.googlecode.com/svn/trunk@508 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
Andreas.Fink85 Andreas.Fink85@121b4492-b84c-0410-8b4c-0d4edfb3f3cc
commit

7fdcd2fbc97b5e52d07f740a9712050dd6380f65

parent

3a709ac55066d3c9ab1f1ec0860c95b9c2e6dd07

5 files changed, 23 insertions(+), 2 deletions(-)

jump to
M ChangeLogChangeLog

@@ -1,5 +1,18 @@

+2010-06-16 +- Set _NET_WM_ICON_GEOMETRY for every task + +2010-06-12 +- strut_policy=minimum is possible even if autohide is disabled + +2010-06-11 +- Added icons and a *.desktop file for tint2conf +- BSD fixes + 2010-06-09 - Add cmake build system + +2010-06-08 +- Xrandr and Nvidia problems fixed 2010-05-17 - Fix installation of examples
M src/server.csrc/server.c

@@ -68,6 +68,7 @@ server.atom._NET_WM_VISIBLE_NAME = XInternAtom (server.dsp, "_NET_WM_VISIBLE_NAME", False);

server.atom._NET_WM_NAME = XInternAtom (server.dsp, "_NET_WM_NAME", False); server.atom._NET_WM_STRUT = XInternAtom (server.dsp, "_NET_WM_STRUT", False); server.atom._NET_WM_ICON = XInternAtom (server.dsp, "_NET_WM_ICON", False); + server.atom._NET_WM_ICON_GEOMETRY = XInternAtom(server.dsp, "_NET_WM_ICON_GEOMETRY", False ); server.atom._NET_CLOSE_WINDOW = XInternAtom (server.dsp, "_NET_CLOSE_WINDOW", False); server.atom.UTF8_STRING = XInternAtom (server.dsp, "UTF8_STRING", False); server.atom._NET_SUPPORTING_WM_CHECK = XInternAtom (server.dsp, "_NET_SUPPORTING_WM_CHECK", False);
M src/server.hsrc/server.h

@@ -49,6 +49,7 @@ Atom _NET_WM_NAME;

Atom _NET_WM_VISIBLE_NAME; Atom _NET_WM_STRUT; Atom _NET_WM_ICON; + Atom _NET_WM_ICON_GEOMETRY; Atom _NET_CLOSE_WINDOW; Atom UTF8_STRING; Atom _NET_SUPPORTING_WM_CHECK;
M src/taskbar/taskbar.csrc/taskbar/taskbar.c

@@ -302,6 +302,9 @@ if (!tsk->area.on_screen) continue;

tsk->area.posx = x; set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id) tsk->area.width = pixel_width; + long value[] = { panel->posx+x, panel->posy, pixel_width, panel->area.height }; + XChangeProperty (server.dsp, tsk->win, server.atom._NET_WM_ICON_GEOMETRY, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)value, 4); + if (modulo_width) { tsk->area.width++; modulo_width--;

@@ -340,6 +343,9 @@ if (!tsk->area.on_screen) continue;

tsk->area.posy = y; set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id) tsk->area.height = pixel_height; + long value[] = { panel->posx, panel->posy+y, panel->area.width, pixel_height }; + XChangeProperty (server.dsp, tsk->win, server.atom._NET_WM_ICON_GEOMETRY, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)value, 4); + if (modulo_height) { tsk->area.height++; modulo_height--;
M src/tint.csrc/tint.c

@@ -97,8 +97,8 @@ sigaction(SIGTERM, &sa, 0);

sigaction(SIGHUP, &sa, 0); // signal(SIGCHLD, SIG_IGN); // don't have to wait() after fork() - // BSD is too stupid to support pselect(), therefore we have to use select and hope that we do not - // end up in a race condition there + // BSD does not support pselect(), therefore we have to use select and hope that we do not + // end up in a race condition there (see 'man select()' on a linux machine for more information) // block all signals, such that no race conditions occur before pselect in our main loop // sigset_t block_mask; // sigaddset(&block_mask, SIGINT);