X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=a8cc19d71b8cf27325a18e11b238cd022eee8403;hb=d3ffd17946b172b64b2abc646176510a0773bc5f;hp=005be632814999af7ca5f25995643211bc5527a5;hpb=9920c62290bd174979c2e42cbc72070155a2a4ac;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 005be63..a8cc19d 100644 --- a/src/tint.c +++ b/src/tint.c @@ -157,7 +157,7 @@ void cleanup() if (snapshot_path) g_free(snapshot_path); cleanup_server(); - XCloseDisplay(server.dsp); + if (server.dsp) XCloseDisplay(server.dsp); } @@ -679,8 +679,10 @@ int main (int argc, char *argv[]) for (i=0 ; i < nb_panel ; i++) { panel = &panel1[i]; - if (panel->is_hidden) + if (panel->is_hidden) { XCopyArea(server.dsp, panel->hidden_pixmap, panel->main_win, server.gc, 0, 0, panel->hidden_width, panel->hidden_height, 0, 0); + XSetWindowBackgroundPixmap(server.dsp, panel->main_win, panel->hidden_pixmap); + } else { if (panel->temp_pmap) XFreePixmap(server.dsp, panel->temp_pmap); panel->temp_pmap = XCreatePixmap(server.dsp, server.root_win, panel->area.width, panel->area.height, server.depth); @@ -801,9 +803,11 @@ int main (int argc, char *argv[]) default: if (e.type == XDamageNotify+damage_event) { + // union needed to avoid strict-aliasing warnings by gcc + union { XEvent e; XDamageNotifyEvent de; } event_union = {.e=e}; TrayWindow *traywin; GSList *l; - XDamageNotifyEvent* de = (XDamageNotifyEvent*)&e; + XDamageNotifyEvent* de = &event_union.de; for (l = systray.list_icons; l ; l = l->next) { traywin = (TrayWindow*)l->data; if ( traywin->id == de->drawable && !de->more ) {