#include <pango/pangocairo.h>
#include "server.h"
+#include "config.h"
#include "window.h"
#include "task.h"
#include "panel.h"
int panel_position;
int panel_horizontal;
int panel_refresh;
+int task_dragged=0;
int panel_autohide = 0;
int panel_autohide_show_timeout = 0;
cleanup_taskbar();
for (i=0 ; i < nb_panel ; i++) {
+ autohide_show(&panel1[i]);
free_area(&panel1[i].area);
if (panel1[i].temp_pmap) {
XFreePixmap(server.dsp, panel1[i].temp_pmap);
if (i >= old_nb_panel) {
// new panel : catch some events
- long event_mask = ExposureMask|ButtonPressMask|ButtonReleaseMask;
- if (g_tooltip.enabled)
- event_mask |= PointerMotionMask|LeaveWindowMask;
- if (panel_autohide)
- event_mask |= LeaveWindowMask|EnterWindowMask;
- XSetWindowAttributes att = { .event_mask=event_mask, .colormap=server.colormap, .background_pixel=0, .border_pixel=0 };
+ XSetWindowAttributes att = { .colormap=server.colormap, .background_pixel=0, .border_pixel=0 };
unsigned long mask = CWEventMask|CWColormap|CWBackPixel|CWBorderPixel;
p->main_win = XCreateWindow(server.dsp, server.root_win, p->posx, p->posy, p->area.width, p->area.height, 0, server.depth, InputOutput, server.visual, mask, &att);
}
XMoveResizeWindow(server.dsp, p->main_win, p->posx, p->posy, p->area.width, p->area.height);
}
+ long event_mask = ExposureMask|ButtonPressMask|ButtonReleaseMask|ButtonMotionMask;
+ if (g_tooltip.enabled)
+ event_mask |= PointerMotionMask|LeaveWindowMask;
+ if (panel_autohide)
+ event_mask |= LeaveWindowMask|EnterWindowMask;
+ XChangeWindowAttributes(server.dsp, p->main_win, CWEventMask, &(XSetWindowAttributes){.event_mask=event_mask});
+
if (!server.gc) {
XGCValues gcv;
server.gc = XCreateGC(server.dsp, p->main_win, 0, &gcv);
//printf("panel %d : %d, %d, %d, %d\n", i, p->posx, p->posy, p->area.width, p->area.height);
set_panel_properties(p);
set_panel_background(p);
- if (i >= old_nb_panel) {
- // map new panel
+ if (i >= old_nb_panel && snapshot_path == 0) {
+ // if we are not in 'snapshot' mode then map new panel
XMapWindow (server.dsp, p->main_win);
}
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;
a = l0->data;
set_redraw(a);
}
+ // reset task 'state_pix'
+ int i;
+ Taskbar *tskbar;
+ for (i=0 ; i < p->nb_desktop ; i++) {
+ tskbar = &p->taskbar[i];
+ for (l0 = tskbar->area.list; l0 ; l0 = l0->next) {
+ set_task_redraw((Task *)l0->data);
+ }
+ }
}