revert r78, fixed issue 100

git-svn-id: http://tint2.googlecode.com/svn/trunk@114 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
lorthiois@bbsoft.fr 2009-06-14 19:07:58 +00:00
parent e6c9996ba0
commit 81930a6861
3 changed files with 13 additions and 26 deletions

View file

@ -1,3 +1,6 @@
2009-06-14
- revert r78, fixed issue 100
2009-06-13
- fixed background refresh on systray

View file

@ -105,17 +105,16 @@ void draw_systray(void *obj, cairo_t *c, int active)
traywin = (TrayWindow*)l->data;
// watch for the icon trying to resize itself!
XSelectInput(server.dsp, traywin->id, StructureNotifyMask|ResizeRedirectMask);
//XSelectInput(server.dsp, traywin->id, StructureNotifyMask|ResizeRedirectMask);
XSelectInput(server.dsp, traywin->id, StructureNotifyMask);
// position and size the icon window
XMoveResizeWindow(server.dsp, traywin->id, traywin->x, traywin->y, icon_size, icon_size);
//printf("icon %d, %d, %d\n", traywin->x, traywin->y, icon_size);
// ceci intervertie les fonds : le premier icone prend le fond du dernier
// le dernier prend le fond de l'avant dernier, ...
XSetWindowBackgroundPixmap (server.dsp, panel->main_win, systray.area.pix.pmap);
// resize our window so that the new window can fit in it
//fix_geometry();
// flush before clearing, otherwise the clear isn't effective.
XFlush(server.dsp);
// make sure the new child will get the right stuff in its background
@ -158,6 +157,8 @@ void resize_systray(void *obj)
traywin->y = posy;
traywin->x = posx;
traywin->width = icon_size;
traywin->height = icon_size;
posx += (icon_size + systray.area.paddingx);
}
@ -260,7 +261,7 @@ int window_error_handler(Display *d, XErrorEvent *e)
if (e->error_code == BadWindow) {
error = TRUE;
} else {
//g_printerr("X ERROR NOT BAD WINDOW!\n");
printf("error_handler %d\n", e->error_code);
abort();
}
return 0;

View file

@ -457,25 +457,6 @@ void event_expose (XEvent *e)
if (!panel) return;
// TODO : one panel_refresh per panel ?
panel_refresh = 1;
/*
if (systray.area.on_screen) {
// force trayer refresh
//XClearWindow(tray_data.dpy, ti->mid_parent);
//x11_send_visibility(tray_data.dpy, dst, VisibilityFullyObscured);
//x11_send_visibility(tray_data.dpy, dst, VisibilityUnobscured);
GSList *l;
TrayWindow *traywin;
for (l = systray.list_icons; l ; l = l->next) {
traywin = (TrayWindow*)l->data;
// send Expose event
XClearArea(server.dsp, traywin->id, 0, 0, systray.area.width, systray.area.height, True);
//printf("expose %lx\n", traywin->id);
}
//x11_refresh_window(tray_data.dpy, ti->wid, ti->l.wnd_sz.x, ti->l.wnd_sz.y, True);
}
*/
}
@ -487,8 +468,10 @@ void event_configure_notify (Window win)
for (l = systray.list_icons; l ; l = l->next) {
traywin = (TrayWindow*)l->data;
if (traywin->id == win) {
XMoveResizeWindow(server.dsp, traywin->id, traywin->x, traywin->y, traywin->width, traywin->height);
return;
//printf("move tray %d\n", traywin->x);
XMoveResizeWindow(server.dsp, traywin->id, traywin->x, traywin->y, traywin->width, traywin->height);
panel_refresh = 1;
return;
}
}