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