efl/legacy
Hyoyoung Chang 24a3c5a092 From: Hyoyoung Chang <hyoyoung.chang@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.




SVN revision: 61026
2011-07-05 01:33:59 +00:00
..
ecore unify more event handling, fix a little formatting 2011-07-05 00:06:27 +00:00
edje edje : Password's last char show feature supported. This patch is made 2011-06-30 05:31:08 +00:00
eet enable mmap safety in eet. 2011-07-04 09:36:07 +00:00
eeze create mount point directory if it doesn't exist 2011-06-30 08:15:42 +00:00
efreet enable mmap safety in efreet. 2011-07-04 09:35:39 +00:00
eina Eina: Spelling fixes and using smaller size for hash image. 2011-07-04 19:48:01 +00:00
eio <arrowdodger> Patch to unbreak eio build on systems without xattr: http://intara.org.ru/eio.diff 2011-07-03 17:58:57 +00:00
embryo Update .gitignore files 2011-06-17 01:59:49 +00:00
emotion emotion/doc - add a link in the main page to the API reference. 2011-07-04 14:42:56 +00:00
ethumb ethumb: fix various source of misusage. 2011-06-28 14:35:21 +00:00
evas From: Hyoyoung Chang <hyoyoung.chang@samsung.com> 2011-07-05 01:33:59 +00:00
evil Evil : don't define open anymore (useless, now) 2011-06-17 21:44:25 +00:00