double cur;
double finish;
double step;
- void (*callback) (Display *dpy, win *w, Bool gone);
+ void (*callback) (Display *dpy, win *w);
Display *dpy;
- Bool gone;
} fade;
win *list;
{
*prev = f->next;
if (f->callback)
- (*f->callback) (dpy, f->w, f->gone);
+ (*f->callback) (dpy, f->w);
free (f);
break;
}
static void
set_fade (Display *dpy, win *w, double start, double finish, double step,
- void (*callback) (Display *dpy, win *w, Bool gone),
- Bool gone, Bool exec_callback, Bool override)
+ void (*callback) (Display *dpy, win *w),
+ Bool exec_callback, Bool override)
{
fade *f;
{
if (exec_callback)
if (f->callback)
- (*f->callback)(dpy, f->w, f->gone);
+ (*f->callback)(dpy, f->w);
}
if (finish < 0)
else if (f->cur > finish)
f->step = -step;
f->callback = callback;
- f->gone = gone;
w->opacity = f->cur * OPAQUE;
#if 0
printf ("set_fade start %g step %g\n", f->cur, f->step);
#endif
if (fade && fadeWindows)
- set_fade (dpy, w, 0, get_opacity_percent (dpy, w, 1.0), fade_in_step, 0, False, True, True);
+ set_fade (dpy, w, 0, get_opacity_percent (dpy, w, 1.0), fade_in_step, 0, True, True);
}
static void
#if HAS_NAME_WINDOW_PIXMAP
static void
-unmap_callback (Display *dpy, win *w, Bool gone)
+unmap_callback (Display *dpy, win *w)
{
finish_unmap_win (dpy, w);
}
w->a.map_state = IsUnmapped;
#if HAS_NAME_WINDOW_PIXMAP
if (w->pixmap && fade && fadeWindows)
- set_fade (dpy, w, w->opacity*1.0/OPAQUE, 0.0, fade_out_step, unmap_callback, False, False, True);
+ set_fade (dpy, w, w->opacity*1.0/OPAQUE, 0.0, fade_out_step, unmap_callback, False, True);
else
#endif
finish_unmap_win (dpy, w);
}
static void
-finish_destroy_win (Display *dpy, Window id, Bool gone)
+finish_destroy_win (Display *dpy, Window id)
{
win **prev, *w;
for (prev = &list; (w = *prev); prev = &w->next)
if (w->id == id)
{
- if (gone)
- finish_unmap_win (dpy, w);
+ finish_unmap_win (dpy, w);
*prev = w->next;
- if (w->picture)
- {
- set_ignore (dpy, NextRequest (dpy));
- XRenderFreePicture (dpy, w->picture);
- w->picture = None;
- }
if (w->alphaPict)
{
XRenderFreePicture (dpy, w->alphaPict);
XRenderFreePicture (dpy, w->shadowPict);
w->shadowPict = None;
}
- if (w->shadow)
- {
- XRenderFreePicture (dpy, w->shadow);
- w->shadow = None;
- }
if (w->damage != None)
{
set_ignore (dpy, NextRequest (dpy));
#if HAS_NAME_WINDOW_PIXMAP
static void
-destroy_callback (Display *dpy, win *w, Bool gone)
+destroy_callback (Display *dpy, win *w)
{
- finish_destroy_win (dpy, w->id, gone);
+ finish_destroy_win (dpy, w->id);
}
#endif
static void
-destroy_win (Display *dpy, Window id, Bool gone, Bool fade)
+destroy_win (Display *dpy, Window id, Bool fade)
{
win *w = find_win (dpy, id);
#if HAS_NAME_WINDOW_PIXMAP
if (w && w->pixmap && fade && fadeWindows)
set_fade (dpy, w, w->opacity*1.0/OPAQUE, 0.0, fade_out_step,
- destroy_callback, gone, False,
- (w->a.map_state != IsUnmapped));
+ destroy_callback, False, (w->a.map_state != IsUnmapped));
else
#endif
{
- finish_destroy_win (dpy, id, gone);
+ finish_destroy_win (dpy, id);
}
}
{
clipChanged = True;
if (fadeWindows)
- set_fade (dpy, w, 0, get_opacity_percent (dpy, w, 1.0), fade_in_step, 0, False, True, True);
+ set_fade (dpy, w, 0, get_opacity_percent (dpy, w, 1.0), fade_in_step, 0, True, True);
w->usable = True;
}
}
configure_win (dpy, &ev.xconfigure);
break;
case DestroyNotify:
- destroy_win (dpy, ev.xdestroywindow.window, True, True);
+ destroy_win (dpy, ev.xdestroywindow.window, True);
break;
case MapNotify:
map_win (dpy, ev.xmap.window, ev.xmap.serial, True);
if (ev.xreparent.parent == root)
add_win (dpy, ev.xreparent.window, 0);
else
- destroy_win (dpy, ev.xreparent.window, False, True);
+ destroy_win (dpy, ev.xreparent.window, True);
break;
case CirculateNotify:
circulate_win (dpy, &ev.xcirculate);
{
if (fadeTrans)
set_fade (dpy, w, w->opacity*1.0/OPAQUE, get_opacity_percent (dpy, w, 1.0),
- fade_out_step, 0, False, True, False);
+ fade_out_step, 0, True, False);
else
{
w->opacity = get_opacity_prop(dpy, w, OPAQUE);