Fix evas pointer count problem, if press/release events occurs not pair,
authorjypark <jypark@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 1 Aug 2012 05:43:50 +0000 (05:43 +0000)
committerjypark <jypark@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 1 Aug 2012 05:43:50 +0000 (05:43 +0000)
it screws up the evas event process. We are not deal with release event if
there is no pressed pointer

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@74705 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
src/lib/canvas/evas_events.c

index f1dcfb3..823c045 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 2012-08-01  Jiyoun Park(jypark)
 
         * Fix gif load bug. we initialize first frame buffer of gif loader
+
+2012-08-01  Jiyoun Park(jypark)
+
+        * Fix evas pointer count problem, if press/release events occurs not pair,
+       it screws up the evas event process. We are not deal with release event if
+       there is no pressed pointer.
index 08ecaa5..20a0a32 100644 (file)
@@ -454,6 +454,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
    MAGIC_CHECK_END();
 
    if ((b < 1) || (b > 32)) return;
+   if (e->pointer.downs <= 0) return;
 
    e->pointer.button &= ~(1 << (b - 1));
    e->pointer.downs--;
@@ -1247,6 +1248,7 @@ evas_event_feed_multi_up(Evas *e,
    return;
    MAGIC_CHECK_END();
 
+   if (e->pointer.downs <= 0) return;
    e->pointer.downs--;
    if (e->events_frozen > 0) return;
    e->last_timestamp = timestamp;