X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Ftint.c;h=609a8d7cea645406314785276a21e4367098fbee;hb=d58d40cf86b22fb1339afb8ce9775182462162e5;hp=5b042a87e4aef59df8a6d1bd3d30378271ea961a;hpb=ea034ed97924271fbda23bd217984931605374e3;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 5b042a8..609a8d7 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); } @@ -310,6 +310,7 @@ void event_button_release (XEvent *e) if (wm_menu && !tint2_handles_click(panel, &e->xbutton)) { forward_click(e); + XLowerWindow (server.dsp, panel->main_win); task_drag = 0; return; } @@ -587,7 +588,7 @@ void event_configure_notify (Window win) Panel *p = tsk->area.panel; if (p->monitor != window_get_monitor (win)) { remove_task (tsk); - add_task (win); + tsk = add_task (win); if (win == window_get_active ()) { set_task_state(tsk, TASK_ACTIVE); task_active = tsk; @@ -800,9 +801,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 ) {