From: Thierry Lorthiois Date: Thu, 14 Jan 2010 22:55:08 +0000 (+0000) Subject: fixed bad background with fake transparency+hidden panel X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftint2;a=commitdiff_plain;h=a9e9b9e07c73ab85381c088f5f6b2d2ee3ef637a fixed bad background with fake transparency+hidden panel --- diff --git a/src/panel.c b/src/panel.c index 9711ebc..77dcb2d 100644 --- a/src/panel.c +++ b/src/panel.c @@ -551,6 +551,12 @@ void set_panel_background(Panel *p) if (p->area.pix) XFreePixmap (server.dsp, p->area.pix); p->area.pix = XCreatePixmap (server.dsp, server.root_win, p->area.width, p->area.height, server.depth); + int xoff=0, yoff=0; + if (panel_horizontal && panel_position & BOTTOM) + yoff = p->area.height-p->hidden_height; + else if (!panel_horizontal && panel_position & RIGHT) + xoff = p->area.width-p->hidden_width; + if (real_transparency) { clear_pixmap(p->area.pix, 0, 0, p->area.width, p->area.height); } @@ -560,7 +566,12 @@ void set_panel_background(Panel *p) 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) ; + if (panel_autohide && p->is_hidden) { + x -= xoff; + y -= yoff; + } + //printf("x %d, y %d\n", x, y); + XSetTSOrigin(server.dsp, server.gc, -x, -y); XFillRectangle(server.dsp, p->area.pix, server.gc, 0, 0, p->area.width, p->area.height); } @@ -576,11 +587,6 @@ void set_panel_background(Panel *p) if (panel_autohide) { if (p->hidden_pixmap) XFreePixmap(server.dsp, p->hidden_pixmap); p->hidden_pixmap = XCreatePixmap(server.dsp, server.root_win, p->hidden_width, p->hidden_height, server.depth); - int xoff=0, yoff=0; - if (panel_horizontal && panel_position & BOTTOM) - yoff = p->area.height-p->hidden_height; - else if (!panel_horizontal && panel_position & RIGHT) - xoff = p->area.width-p->hidden_width; XCopyArea(server.dsp, p->area.pix, p->hidden_pixmap, server.gc, xoff, yoff, p->hidden_width, p->hidden_height, 0, 0); } diff --git a/src/tint.c b/src/tint.c index 0004f30..2c99121 100644 --- a/src/tint.c +++ b/src/tint.c @@ -263,6 +263,7 @@ int tint2_handles_click(Panel* panel, XButtonEvent* e) if (tskbar && e->button == 1 && panel_mode == MULTI_DESKTOP) return 1; if (click_clock(panel, e->x, e->y)) { + printf("ici 1 : %d\n", e->button); if ( (e->button == 1 && clock_lclick_command) || (e->button == 3 && clock_rclick_command) ) return 1; else