evas/evas_event - evas_object_freeze_set for the key events.

SVN revision: 65091
This commit is contained in:
ChunEon Park 2011-11-12 07:51:58 +00:00
parent 41c1734761
commit 6dbe2c7443
1 changed files with 9 additions and 7 deletions

View File

@ -504,7 +504,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
ev.canvas.x = e->pointer.x; ev.canvas.x = e->pointer.x;
ev.canvas.y = e->pointer.y; ev.canvas.y = e->pointer.y;
_evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed); _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed);
if (e->events_frozen <= 0) if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj))
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev); evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev);
if (e->delete_me) break; if (e->delete_me) break;
} }
@ -1194,10 +1194,10 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
MAGIC_CHECK(e, Evas, MAGIC_EVAS); MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return; return;
MAGIC_CHECK_END(); MAGIC_CHECK_END();
if (!keyname) return; if (!keyname) return;
if (e->events_frozen > 0) return; if (e->events_frozen > 0) return;
e->last_timestamp = timestamp; e->last_timestamp = timestamp;
_evas_walk(e); _evas_walk(e);
Evas_Event_Key_Down ev; Evas_Event_Key_Down ev;
@ -1236,7 +1236,8 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
{ {
if (!(e->modifiers.mask & g->not_modifiers)) if (!(e->modifiers.mask & g->not_modifiers))
{ {
if (e->events_frozen <= 0) if (e->events_frozen <= 0 &&
!evas_event_freezes_through(g->object))
evas_object_event_callback_call(g->object, evas_object_event_callback_call(g->object,
EVAS_CALLBACK_KEY_DOWN, EVAS_CALLBACK_KEY_DOWN,
&ev); &ev);
@ -1264,7 +1265,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
} }
if ((e->focused) && (!exclusive)) if ((e->focused) && (!exclusive))
{ {
if (e->events_frozen <= 0) if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused))
evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_DOWN, evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_DOWN,
&ev); &ev);
} }
@ -1319,7 +1320,8 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
(g->not_modifiers == ~e->modifiers.mask))) && (g->not_modifiers == ~e->modifiers.mask))) &&
(!strcmp(keyname, g->keyname))) (!strcmp(keyname, g->keyname)))
{ {
if (e->events_frozen <= 0) if (e->events_frozen <= 0 &&
!evas_event_freezes_through(g->object))
evas_object_event_callback_call(g->object, evas_object_event_callback_call(g->object,
EVAS_CALLBACK_KEY_UP, &ev); EVAS_CALLBACK_KEY_UP, &ev);
if (g->exclusive) exclusive = EINA_TRUE; if (g->exclusive) exclusive = EINA_TRUE;
@ -1346,7 +1348,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
} }
if ((e->focused) && (!exclusive)) if ((e->focused) && (!exclusive))
{ {
if (e->events_frozen <= 0) if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused))
evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_UP, evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_UP,
&ev); &ev);
} }
@ -1379,7 +1381,7 @@ evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const void *data
copy = evas_event_list_copy(e->pointer.object.in); copy = evas_event_list_copy(e->pointer.object.in);
EINA_LIST_FOREACH(copy, l, obj) EINA_LIST_FOREACH(copy, l, obj)
{ {
if (e->events_frozen <= 0) if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj))
evas_object_event_callback_call(obj, EVAS_CALLBACK_HOLD, &ev); evas_object_event_callback_call(obj, EVAS_CALLBACK_HOLD, &ev);
if (e->delete_me) break; if (e->delete_me) break;
} }