- XMoveResizeWindow(server.dsp, traywin->id, traywin->x, traywin->y, icon_size, icon_size);
- XResizeWindow(server.dsp, traywin->tray_id, icon_size, icon_size);
+ XMoveResizeWindow(server.dsp, traywin->id, traywin->x, traywin->y, sysbar->icon_size, sysbar->icon_size);
+ XResizeWindow(server.dsp, traywin->tray_id, sysbar->icon_size, sysbar->icon_size);
+ }
+
+ if (server.real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) {
+ if (render_background) XFreePixmap(server.dsp, render_background);
+ render_background = XCreatePixmap(server.dsp, server.root_win, systray.area.width, systray.area.height, server.depth);
+ XCopyArea(server.dsp, systray.area.pix, render_background, server.gc, 0, 0, systray.area.width, systray.area.height, 0, 0);
+ }
+
+ refresh_systray = 1;
+}
+
+
+int resize_systray(void *obj)
+{
+ Systraybar *sysbar = obj;
+ GSList *l;
+ int count;
+
+ if (panel_horizontal)
+ sysbar->icon_size = sysbar->area.height;
+ else
+ sysbar->icon_size = sysbar->area.width;
+ sysbar->icon_size = sysbar->icon_size - (2 * sysbar->area.bg->border.width) - (2 * sysbar->area.paddingy);
+ if (systray_max_icon_size > 0 && sysbar->icon_size > systray_max_icon_size)
+ sysbar->icon_size = systray_max_icon_size;
+ count = 0;
+ for (l = systray.list_icons; l ; l = l->next) {
+ if (!((TrayWindow*)l->data)->hide)
+ count++;