*fix* broke systray with last checkin for fake transparency

*fix* some real transparency stuff fixed... it seems as if it is done now



git-svn-id: http://tint2.googlecode.com/svn/trunk@312 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
Andreas.Fink85 2010-01-03 09:49:55 +00:00
parent 3c53d06506
commit a0cf313f08
4 changed files with 12 additions and 13 deletions

View file

@ -488,17 +488,16 @@ void set_panel_background(Panel *p)
if (real_transparency) {
clear_pixmap(p->area.pix.pmap, 0, 0, p->area.width, p->area.height);
return; // no need for background pixmap, a transparent one is enough
}
get_root_pixmap();
// copy background (server.root_pmap) in panel.area.pix.pmap
Window dummy;
int x, y;
XTranslateCoordinates(server.dsp, p->main_win, server.root_win, 0, 0, &x, &y, &dummy);
XSetTSOrigin(server.dsp, server.gc, -x, -y) ;
XFillRectangle(server.dsp, p->area.pix.pmap, server.gc, 0, 0, p->area.width, p->area.height);
else {
get_root_pixmap();
// copy background (server.root_pmap) in panel.area.pix.pmap
Window dummy;
int x, y;
XTranslateCoordinates(server.dsp, p->main_win, server.root_win, 0, 0, &x, &y, &dummy);
XSetTSOrigin(server.dsp, server.gc, -x, -y) ;
XFillRectangle(server.dsp, p->area.pix.pmap, server.gc, 0, 0, p->area.width, p->area.height);
}
// draw background panel
cairo_surface_t *cs;

View file

@ -514,7 +514,7 @@ void refresh_systray_icon()
traywin = (TrayWindow*)l->data;
if (traywin->hide) continue;
if (real_transparency) systray_render_icons(traywin);
else XClearArea(server.dsp, traywin->id, 0, 0, traywin->width, traywin->height, False);
else XClearArea(server.dsp, traywin->id, 0, 0, traywin->width, traywin->height, True);
}
if (real_transparency)
XFlush(server.dsp);

View file

@ -830,6 +830,7 @@ int main (int argc, char *argv[])
default:
if (e.type == XDamageNotify+damage_event)
// TODO: update only the damaged icon, not all of them
systray.area.redraw = 1;
}
}

View file

@ -110,8 +110,7 @@ void draw (Area *a, int active)
// add layer of root pixmap (or clear pixmap if real_transparency==true)
if (real_transparency)
clear_pixmap(*pmap, 0 ,0, a->width, a->height);
else
XCopyArea (server.dsp, ((Panel *)a->panel)->temp_pmap, *pmap, server.gc, a->posx, a->posy, a->width, a->height, 0, 0);
XCopyArea (server.dsp, ((Panel *)a->panel)->temp_pmap, *pmap, server.gc, a->posx, a->posy, a->width, a->height, 0, 0);
cairo_surface_t *cs;
cairo_t *c;