#define INNER_EVENTMASK (ButtonPressMask)
#define FRAME_ANIMATE_ICONIFY_STEPS 20
-#define FRAME_ANIMATE_ICONIFY_TIME (G_USEC_PER_SEC/10)
+#define FRAME_ANIMATE_ICONIFY_TIME (G_USEC_PER_SEC/5)
#define FRAME_HANDLE_Y(f) (f->innersize.top + f->client->area.height + \
f->cbwidth_y)
g_assert(self->client == client);
/* if there was any animation going on, kill it */
- ob_main_loop_timeout_remove(ob_main_loop, frame_animate_iconify);
+ ob_main_loop_timeout_remove_data(ob_main_loop, frame_animate_iconify,
+ self, FALSE);
/* check if the app has already reparented its window away */
while (XCheckTypedWindowEvent(ob_display, client->window,
if (win == RootWindow(ob_display, ob_screen))
return OB_FRAME_CONTEXT_DESKTOP;
if (client == NULL) return OB_FRAME_CONTEXT_NONE;
+
+ self = client->frame;
+ if (self->iconify_animation_step) return OB_FRAME_CONTEXT_NONE;
+
if (win == client->window) {
/* conceptually, this is the desktop, as far as users are
concerned */
return OB_FRAME_CONTEXT_CLIENT;
}
- self = client->frame;
if (win == self->inner || win == self->plate) {
/* conceptually, this is the desktop, as far as users are
concerned */
if (self->iconify_animation_step == FRAME_ANIMATE_ICONIFY_STEPS ||
self->iconify_animation_step == -FRAME_ANIMATE_ICONIFY_STEPS)
{
- ob_main_loop_timeout_remove(ob_main_loop, frame_animate_iconify);
+ ob_main_loop_timeout_remove_data(ob_main_loop, frame_animate_iconify,
+ self, FALSE);
ob_main_loop_timeout_add(ob_main_loop,
FRAME_ANIMATE_ICONIFY_TIME /
FRAME_ANIMATE_ICONIFY_STEPS,