From 7329ec0e6d192dc8f4046e3776d5a3bc07cd3f12 Mon Sep 17 00:00:00 2001 From: sabetts Date: Thu, 24 May 2001 21:01:10 +0000 Subject: * src/events.c (colormap_notify): ignore badwindows when retrieving and installing the colormap. * src/manage.c (withdraw_window): ignore badwindows during all Xlib calls. --- src/events.c | 7 +++++++ src/manage.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/events.c b/src/events.c index b75f055..26edccb 100644 --- a/src/events.c +++ b/src/events.c @@ -102,6 +102,7 @@ unmap_notify (XEvent *ev) if (frame) cleanup_frame (frame); if (frame == rp_current_frame) set_active_frame (frame); + withdraw_window (win); break; } @@ -557,6 +558,10 @@ colormap_notify (XEvent *ev) { XWindowAttributes attr; + /* SDL sets the colormap just before destroying the window, so + ignore BadWindow errors. */ + ignore_badwindow++; + XGetWindowAttributes (dpy, win->w, &attr); win->colormap = attr.colormap; @@ -564,6 +569,8 @@ colormap_notify (XEvent *ev) { XInstallColormap (dpy, win->colormap); } + + ignore_badwindow--; } } diff --git a/src/manage.c b/src/manage.c index b379069..11fbfd9 100644 --- a/src/manage.c +++ b/src/manage.c @@ -530,10 +530,11 @@ withdraw_window (rp_window *win) remove_from_list (win); append_to_list (win, rp_unmapped_window_sentinel); + ignore_badwindow++; + XRemoveFromSaveSet (dpy, win->w); set_state (win, WithdrawnState); - - ignore_badwindow++; XSync (dpy, False); + ignore_badwindow--; } -- cgit v1.2.3