all repos — tint2 @ d70f2677803209829ff28755d4b95080d25df28b

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

*fix* maybe issue 212



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

d70f2677803209829ff28755d4b95080d25df28b

parent

fa9521ca401f3d7b47e5d3d646289afd9939fc27

4 files changed, 17 insertions(+), 19 deletions(-)

jump to
M src/config.csrc/config.c

@@ -87,9 +87,6 @@ if (panel_config.g_task.font_desc) {

pango_font_description_free(panel_config.g_task.font_desc); } memset(&panel_config, 0, sizeof(Panel)); - int i; - for (i=0; i<TASK_STATE_COUNT; ++i) - panel_config.g_task.alpha[i] = 100; systray.alpha = 100; systray.sort = 3; old_config_file = 1;
M src/systray/systraybar.csrc/systray/systraybar.c

@@ -546,9 +546,20 @@

void systray_render_icon(TrayWindow* traywin) { - // wine tray icons update whenever mouse is over them, so we limit the updates to 50 ms - if (traywin->render_timeout == 0) - traywin->render_timeout = add_timeout(50, 0, systray_render_icon_now, traywin); + if (real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) { + // wine tray icons update whenever mouse is over them, so we limit the updates to 50 ms + if (traywin->render_timeout == 0) + traywin->render_timeout = add_timeout(50, 0, systray_render_icon_now, traywin); + } + else { + // comment by andreas: I'm still not sure, what exactly we need to do here... Somehow trayicons which do not + // offer the same depth as tint2 does, need to draw a background pixmap, but this cannot be done with + // XCopyArea... So we actually need XRenderComposite??? +// Pixmap pix = XCreatePixmap(server.dsp, server.root_win, traywin->width, traywin->height, server.depth); +// XCopyArea(server.dsp, panel->temp_pmap, pix, server.gc, traywin->x, traywin->y, traywin->width, traywin->height, 0, 0); +// XSetWindowBackgroundPixmap(server.dsp, traywin->id, pix); + XClearArea(server.dsp, traywin->tray_id, 0, 0, traywin->width, traywin->height, True); + } }

@@ -559,16 +570,6 @@ GSList *l;

for (l = systray.list_icons; l ; l = l->next) { traywin = (TrayWindow*)l->data; if (traywin->hide) continue; - if (real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) - systray_render_icon(traywin); - else { - // comment by andreas: I'm still not sure, what exactly we need to do here... Somehow trayicons which do not - // offer the same depth as tint2 does, need to draw a background pixmap, but this cannot be done with - // XCopyArea... So we actually need XRenderComposite??? -// Pixmap pix = XCreatePixmap(server.dsp, server.root_win, traywin->width, traywin->height, server.depth); -// XCopyArea(server.dsp, panel->temp_pmap, pix, server.gc, traywin->x, traywin->y, traywin->width, traywin->height, 0, 0); -// XSetWindowBackgroundPixmap(server.dsp, traywin->id, pix); - XClearArea(server.dsp, traywin->tray_id, 0, 0, traywin->width, traywin->height, True); - } + systray_render_icon(traywin); } }
M src/taskbar/taskbar.csrc/taskbar/taskbar.c

@@ -64,7 +64,7 @@ panel->g_taskbar.bg = &g_array_index(backgrounds, Background, 0);

panel->g_taskbar.area.bg = panel->g_taskbar.bg; } if (panel->g_taskbar.bg_active == 0) - panel->g_taskbar.bg_active = &g_array_index(backgrounds, Background, 0); + panel->g_taskbar.bg_active = panel->g_taskbar.bg; if (panel->g_task.area.bg == 0) panel->g_task.area.bg = &g_array_index(backgrounds, Background, 0);
M src/tint.csrc/tint.c

@@ -821,7 +821,7 @@ GSList *l;

XDamageNotifyEvent* de = &event_union.de; for (l = systray.list_icons; l ; l = l->next) { traywin = (TrayWindow*)l->data; - if ( traywin->id == de->drawable && !de->more ) { + if ( traywin->id == de->drawable ) { systray_render_icon(traywin); break; }