From: Andreas Fink Date: Sat, 20 Feb 2010 10:08:56 +0000 (+0000) Subject: *add* strut_policy = none X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=1ac25b2b66dab98e7c85c4f483d202f95b432828;p=chaz%2Ftint2 *add* strut_policy = none --- diff --git a/src/config.c b/src/config.c index b436214..f825d5b 100644 --- a/src/config.c +++ b/src/config.c @@ -596,6 +596,8 @@ void add_entry (char *key, char *value) 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; } diff --git a/src/panel.c b/src/panel.c index b271b23..b6a0fd6 100644 --- a/src/panel.c +++ b/src/panel.c @@ -433,6 +433,12 @@ void visible_object() 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; diff --git a/src/panel.h b/src/panel.h index f51211b..9e38fe0 100644 --- a/src/panel.h +++ b/src/panel.h @@ -52,7 +52,7 @@ extern int panel_refresh; 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; diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index 6db5797..e6ca166 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -352,6 +352,7 @@ gboolean add_icon(Window id) 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; @@ -508,6 +509,7 @@ void net_message(XClientMessageEvent *e) 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; @@ -526,7 +528,7 @@ void systray_render_icon_now(void* t) 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);