X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fpanel.c;h=825a382e64fb03da2accbaa1d8f924406f9a429e;hb=3ad3e76e075ac8c26668c6ae967758f397855aad;hp=e202f816950ac80dbdbb9601ce5f7910596cf4d2;hpb=38593e9499e81912ca8b0a70bb562925f530cca5;p=chaz%2Ftint2 diff --git a/src/panel.c b/src/panel.c index e202f81..825a382 100644 --- a/src/panel.c +++ b/src/panel.c @@ -73,12 +73,13 @@ void init_panel() // add childs if (p->clock.area.on_screen) p->area.list = g_slist_append(p->area.list, &p->clock); +#ifdef ENABLE_BATTERY if (p->battery.area.on_screen) p->area.list = g_slist_append(p->area.list, &p->battery); - if (systray.area.on_screen && i == 0) { - // systray only on first panel +#endif + // systray only on first panel + if (systray.area.on_screen && i == 0) p->area.list = g_slist_append(p->area.list, &systray); - } // detect panel size if (p->pourcentx) @@ -115,14 +116,11 @@ void init_panel() else { p->posy = server.monitor[p->monitor].y + server.monitor[p->monitor].height - p->area.height - p->marginy; } + //printf("posx %d, posy %d, width %d, height %d\n", p->posx, p->posy, p->area.width, p->area.height); // Catch some events XSetWindowAttributes att = { ParentRelative, 0L, 0, 0L, 0, 0, Always, 0L, 0L, False, ExposureMask|ButtonPressMask|ButtonReleaseMask, NoEventMask, False, 0, 0 }; - - // XCreateWindow(display, parent, x, y, w, h, border, depth, class, visual, mask, attrib) - // main_win doesn't include panel.area.paddingx, so we have WM capabilities on left and right. if (p->main_win) XDestroyWindow(server.dsp, p->main_win); - //win = XCreateWindow (server.dsp, server.root_win, p->posx+p->area.paddingxlr, p->posy, p->area.width-(2*p->area.paddingxlr), p->area.height, 0, server.depth, InputOutput, CopyFromParent, CWEventMask, &att); p->main_win = XCreateWindow(server.dsp, server.root_win, p->posx, p->posy, p->area.width, p->area.height, 0, server.depth, InputOutput, CopyFromParent, CWEventMask, &att); set_panel_properties(p); @@ -182,8 +180,10 @@ void resize_panel(void *obj) taskbar_width = panel->area.width - (2 * panel->area.paddingxlr) - (2 * panel->area.pix.border.width); if (panel->clock.area.on_screen && panel->clock.area.width) taskbar_width -= (panel->clock.area.width + panel->area.paddingx); +#ifdef ENABLE_BATTERY if (panel->battery.area.on_screen && panel->battery.area.width) taskbar_width -= (panel->battery.area.width + panel->area.paddingx); +#endif // TODO : systray only on first panel. search better implementation ! if (systray.area.on_screen && systray.area.width && panel == &panel1[0]) taskbar_width -= (systray.area.width + panel->area.paddingx); @@ -229,7 +229,7 @@ void visible_object() for (j=0 ; j < panel->nb_desktop ; j++) { taskbar = &panel->taskbar[j]; if (panel_mode != MULTI_DESKTOP && taskbar->desktop != server.desktop) { - // (SINGLE_DESKTOP or SINGLE_MONITOR) and not current desktop + // SINGLE_DESKTOP and not current desktop taskbar->area.on_screen = 0; } else { @@ -254,8 +254,8 @@ void set_panel_properties(Panel *p) } // Dock - //long val = server.atom._NET_WM_WINDOW_TYPE_DOCK; - //XChangeProperty (server.dsp, p->main_win, server.atom._NET_WM_WINDOW_TYPE, XA_ATOM, 32, PropModeReplace, (unsigned char *) &val, 1); + long val = server.atom._NET_WM_WINDOW_TYPE_DOCK; + XChangeProperty (server.dsp, p->main_win, server.atom._NET_WM_WINDOW_TYPE, XA_ATOM, 32, PropModeReplace, (unsigned char *) &val, 1); // Reserved space long struts [12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -276,7 +276,7 @@ void set_panel_properties(Panel *p) XChangeProperty (server.dsp, p->main_win, server.atom._NET_WM_STRUT_PARTIAL, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &struts, 12); // Sticky and below other window - long val = 0xFFFFFFFF; + val = 0xFFFFFFFF; XChangeProperty (server.dsp, p->main_win, server.atom._NET_WM_DESKTOP, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &val, 1); Atom state[4]; state[0] = server.atom._NET_WM_STATE_SKIP_PAGER;