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