+2009-06-14
+- revert r78, fixed issue 100
+
2009-06-13
- fixed background refresh on systray
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
traywin->y = posy;
traywin->x = posx;
+ traywin->width = icon_size;
+ traywin->height = icon_size;
posx += (icon_size + systray.area.paddingx);
}
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;
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);
- }
-*/
}
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;
}
}