fix grab handling

SVN revision: 16909
This commit is contained in:
Carsten Haitzler 2005-09-24 10:22:55 +00:00
parent 45fc92a9ec
commit dd136afb1b
1 changed files with 6 additions and 5 deletions

View File

@ -739,13 +739,14 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
if (g->delete_me) continue; if (g->delete_me) continue;
if (((e->modifiers.mask & g->modifiers) || if (((e->modifiers.mask & g->modifiers) ||
(g->modifiers == e->modifiers.mask)) && (g->modifiers == e->modifiers.mask)) &&
(!((e->modifiers.mask & g->not_modifiers) ||
(g->not_modifiers == ~e->modifiers.mask))) &&
(!strcmp(keyname, g->keyname))) (!strcmp(keyname, g->keyname)))
{ {
if (e->events_frozen <= 0) if (!(e->modifiers.mask & g->not_modifiers))
evas_object_event_callback_call(g->object, EVAS_CALLBACK_KEY_DOWN, &ev); {
if (g->exclusive) exclusive = 1; if (e->events_frozen <= 0)
evas_object_event_callback_call(g->object, EVAS_CALLBACK_KEY_DOWN, &ev);
if (g->exclusive) exclusive = 1;
}
} }
} }
e->walking_grabs--; e->walking_grabs--;