On Tue, 5 Jul 2011 10:53:08 +0900 Daniel Juyung Seo <seojuyu...@gmail.com> said:

i'm banking on getting 1.1 out before we need 1.0.2 :)

> backport needed?
> 
> Daniel Juyung Seo (SeoZ)
> 
> On Tue, Jul 5, 2011 at 10:33 AM, Enlightenment SVN
> <no-re...@enlightenment.org> wrote:
> > Log:
> > From: Hyoyoung Chang <hyoyoung.ch...@samsung.com>
> >  Subject: [E-devel] [patch] evas - add checking event type
> >
> >  Dear developers.
> >
> >  I found a bug about evas event handling.
> >  In some situation, evas blocks some events by checking _evas_event_counter.
> >  So I made a patch that is checking event type also event counter.
> >
> >  Reproduce steps:
> >  1. make a window
> >  2. show window before adding a elementary/genlist widget
> >
> >  --- codes ---
> >  void _gl_mousedown_cb(void *data, Evas *evas, Evas_Object *obj, void
> > *event_info) {
> >    printf("_gl_mousedown_cb !! \n");
> >  }
> >
> >  static Eina_Bool create_main_win(App *app)
> >  {
> >    app->win = elm_win_add(NULL, "genlist-win", ELM_WIN_BASIC);
> >    evas_object_show(app->win);          <-- position 1
> >
> >    Evas_Object *genlist = elm_genlist_add(app->win);
> >    elm_win_resize_object_add(app->win, genlist);
> >    evas_object_event_callback_add(genlist, EVAS_CALLBACK_MOUSE_DOWN,
> > _gl_mousedown_cb, NULL); evas_object_show(genlist);
> >
> >    evas_object_resize(app->win, 320, 240);
> >  //evas_object_show(app->win);          <-- position 2
> >
> >    return EINA_TRUE;
> >  }
> >  --- codes ---
> >
> >  In common use case, apps don't show main window at position 1.
> >  However to reproduce, it can be at position 1. Then, focus is at just on
> > main window. In that situation, if a user clicks a genlist, its event is
> > dropped by evas. Because in mouse down callback, it give focus to genlist.
> >
> >  Then two events is made. First is mouse down, second is focus handling.
> >  In event callback, evas processes mouse down after focus handling.
> >  But evas found that mouse event is retarded event than focus handling.
> >  So it ignores it.
> >
> >  This patch is introduce event handling type checking to
> >  evas_object_event_callback_call.
> >
> >
> >
> >
> > Author:       raster
> > Date:         2011-07-04 18:33:59 -0700 (Mon, 04 Jul 2011)
> > New Revision: 61026
> > Trac:         http://trac.enlightenment.org/e/changeset/61026
> >
> > Modified:
> >  trunk/evas/ChangeLog trunk/evas/src/lib/canvas/evas_callbacks.c
> > trunk/evas/src/lib/include/evas_private.h
> >
> > Modified: trunk/evas/ChangeLog
> > ===================================================================
> > --- trunk/evas/ChangeLog        2011-07-05 00:06:27 UTC (rev 61025)
> > +++ trunk/evas/ChangeLog        2011-07-05 01:33:59 UTC (rev 61026)
> > @@ -413,3 +413,8 @@
> >
> >        * Polygon: Implemented "is_inside".
> >
> > +2011-07-05  Hyoyoung Chang
> > +
> > +       * Fix bug where event causes event in callback on same object, but
> > +        with same event counter, so also filter out same event types.
> > +
> >
> > Modified: trunk/evas/src/lib/canvas/evas_callbacks.c
> > ===================================================================
> > --- trunk/evas/src/lib/canvas/evas_callbacks.c  2011-07-05 00:06:27 UTC
> > (rev 61025) +++ trunk/evas/src/lib/canvas/evas_callbacks.c  2011-07-05
> > 01:33:59 UTC (rev 61026) @@ -170,8 +170,10 @@
> >    Evas *e;
> >
> >    if ((obj->delete_me) || (!obj->layer)) return;
> > -   if (obj->last_event == _evas_event_counter) return;
> > +   if ((obj->last_event == _evas_event_counter) &&
> > +       (obj->last_event_type == type)) return;
> >    obj->last_event = _evas_event_counter;
> > +   obj->last_event_type = type;
> >    if (!(e = obj->layer->evas)) return;
> >
> >    _evas_walk(e);
> >
> > Modified: trunk/evas/src/lib/include/evas_private.h
> > ===================================================================
> > --- trunk/evas/src/lib/include/evas_private.h   2011-07-05 00:06:27 UTC
> > (rev 61025) +++ trunk/evas/src/lib/include/evas_private.h   2011-07-05
> > 01:33:59 UTC (rev 61026) @@ -499,6 +499,7 @@
> >    int                         mouse_grabbed;
> >
> >    int                         last_event;
> > +   Evas_Callback_Type          last_event_type;
> >
> >    struct {
> >         int                      in_move, in_resize;
> >
> >
> > ------------------------------------------------------------------------------
> > All of the data generated in your IT infrastructure is seriously valuable.
> > Why? It contains a definitive record of application performance, security
> > threats, fraudulent activity, and more. Splunk takes this data and makes
> > sense of it. IT sense. And common sense.
> > http://p.sf.net/sfu/splunk-d2d-c2
> > _______________________________________________
> > enlightenment-svn mailing list
> > enlightenment-...@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
> >
> 
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security 
> threats, fraudulent activity, and more. Splunk takes this data and makes 
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to