hermet pushed a commit to branch master.

commit 5500f9f740d27d9d202ae1c591cf8078d9b28358
Author: ChunEon Park <[email protected]>
Date:   Wed Apr 17 22:08:41 2013 +0900

    elementary/naviframe - don't try to pop the naviframe item multiple times.
---
 ChangeLog                      |  4 ++++
 NEWS                           |  1 +
 src/lib/elc_naviframe.c        | 10 +++++++++-
 src/lib/elm_widget_naviframe.h |  1 +
 4 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index d3bc3f6..4e33310 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1260,3 +1260,7 @@
 2013-04-16  WooHyun Jung
 
         * When entry is disabled, scrolling is also disabled.
+
+2013-04-17  ChunEon Park
+
+        * Don't try to pop the naviframe item multiple times.
diff --git a/NEWS b/NEWS
index 89e0dc0..9b11d9d 100644
--- a/NEWS
+++ b/NEWS
@@ -98,6 +98,7 @@ Improvements:
    * Naviframe is now supproting focus_direction.
    * Scroller decides whether the accelerator is on or not, depending on the 
velocity and the interval time of the flick event.
    * Ctxpopup is now supproting focus_direction.
+   * Don't try to pop the naviframe item multiple times.
 
 Fixes:
 
diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index 2995678..0026099 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -1617,9 +1617,17 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
    it = (Elm_Naviframe_Item *)elm_naviframe_top_item_get(obj);
    if (!it) return;
 
+   if (it->animator || it->popping) return;
+
+   it->popping = EINA_TRUE;
+
    if (it->pop_cb)
      {
-        if (!it->pop_cb(it->pop_data, (Elm_Object_Item *)it)) return;
+        if (!it->pop_cb(it->pop_data, (Elm_Object_Item *)it))
+          {
+             it->popping = EINA_FALSE;
+             return;
+          }
      }
 
    if (sd->preserve)
diff --git a/src/lib/elm_widget_naviframe.h b/src/lib/elm_widget_naviframe.h
index 3d8f274..a41288e 100644
--- a/src/lib/elm_widget_naviframe.h
+++ b/src/lib/elm_widget_naviframe.h
@@ -56,6 +56,7 @@ struct _Elm_Naviframe_Item
 
    Eina_Bool    title_visible : 1;
    Eina_Bool    unfocusable : 1;
+   Eina_Bool    popping : 1;
 };
 
 typedef struct _Elm_Naviframe_Content_Item_Pair 
Elm_Naviframe_Content_Item_Pair;

-- 

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter

Reply via email to