else if (strcmp(key, "strut_policy") == 0) {
if (strcmp(value, "follow_size") == 0)
panel_strut_policy = STRUT_FOLLOW_SIZE;
+ else if (strcmp(value, "none") == 0)
+ panel_strut_policy = STRUT_NONE;
else
panel_strut_policy = STRUT_MINIMUM;
}
void update_strut(Panel* p)
{
+ if (panel_strut_policy == STRUT_NONE) {
+ XDeleteProperty(server.dsp, p->main_win, server.atom._NET_WM_STRUT);
+ XDeleteProperty(server.dsp, p->main_win, server.atom._NET_WM_STRUT_PARTIAL);
+ return;
+ }
+
// Reserved space
unsigned int d1, screen_width, screen_height;
Window d2;
extern int task_dragged;
//panel autohide
-enum { STRUT_MINIMUM, STRUT_FOLLOW_SIZE };
+enum { STRUT_MINIMUM, STRUT_FOLLOW_SIZE, STRUT_NONE };
extern int panel_autohide;
extern int panel_autohide_show_timeout;
extern int panel_autohide_hide_timeout;
XGetWindowAttributes(server.dsp, id, &attr);
unsigned long mask = 0;
XSetWindowAttributes set_attr;
+// printf("icon with depth: %d\n", attr.depth);
if (attr.depth != server.depth || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0 ) {
set_attr.colormap = attr.colormap;
set_attr.background_pixel = 0;
void systray_render_icon_now(void* t)
{
+ // we end up in this function only in real transparency mode or if systray_task_asb != 100 0 0
TrayWindow* traywin = t;
traywin->render_timeout = 0;
else if (traywin->depth == 32)
f = XRenderFindStandardFormat(server.dsp, PictStandardARGB32);
else {
- printf("Strange tray icon found...\n");
+ printf("Strange tray icon found with depth: %d\n", traywin->depth);
return;
}
Picture pict_image = XRenderCreatePicture(server.dsp, traywin->tray_id, f, 0, 0);