From 074960f55c0b8d192bdeffc2c80f4ddeeb67551d Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Tue, 4 Jan 2011 19:08:09 +0100 Subject: Split up folderview_close_cb This allows us to close a folderview without having to invoke the callback function. --- src/gui.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/gui.c b/src/gui.c index 45862bf..bd04a7a 100644 --- a/src/gui.c +++ b/src/gui.c @@ -963,16 +963,9 @@ static gboolean folderview_close_finish(gpointer user_data) return FALSE; } -static gboolean folderview_close_cb(ClutterActor *actor, ClutterButtonEvent *event, gpointer user_data) +static void folderview_close(SBItem *folderitem) { - /* discard double clicks */ - if (event->click_count > 1) { - return FALSE; - } - - SBItem *item = (SBItem*)user_data; - - clutter_actor_set_reactive(item->texture, FALSE); + clutter_actor_set_reactive(folderitem->texture, FALSE); clutter_actor_set_reactive(aniupper, FALSE); clutter_actor_set_reactive(anilower, FALSE); @@ -983,7 +976,19 @@ static gboolean folderview_close_cb(ClutterActor *actor, ClutterButtonEvent *eve clutter_actor_animate(anilower, CLUTTER_EASE_IN_OUT_QUAD, FOLDER_ANIM_DURATION, "y", 0.0, NULL); clutter_actor_animate(folder, CLUTTER_EASE_IN_OUT_QUAD, FOLDER_ANIM_DURATION, "y", split_pos, NULL); - clutter_threads_add_timeout(FOLDER_ANIM_DURATION, (GSourceFunc)folderview_close_finish, user_data); + clutter_threads_add_timeout(FOLDER_ANIM_DURATION, (GSourceFunc)folderview_close_finish, (gpointer)folderitem); +} + +static gboolean folderview_close_cb(ClutterActor *actor, ClutterButtonEvent *event, gpointer user_data) +{ + /* discard double clicks */ + if (event->click_count > 1) { + return FALSE; + } + + SBItem *item = (SBItem*)user_data; + + folderview_close(item); return TRUE; } -- cgit v1.1-32-gdbae