keyboard support... key grabs dont work.. and i'm not happy with it as an

api causeti doesnt support modifiers when grabbing in the api.


SVN revision: 6493
This commit is contained in:
Carsten Haitzler 2002-12-17 00:00:38 +00:00
parent c36863b1dc
commit beb924c23e
9 changed files with 392 additions and 37 deletions

View File

@ -60,8 +60,6 @@ typedef void Evas;
typedef void Evas_Object;
/** An Evas Performance handle */
typedef void Evas_Performance;
/** An Evas Key */
typedef void Evas_Key;
/** An Evas Modifier */
typedef void Evas_Modifier;
/** An Evas Lock */
@ -179,7 +177,7 @@ struct _Evas_Event_Mouse_Move
struct _Evas_Event_Key_Down
{
Evas_Key *key;
char *keyname;
void *data;
Evas_Modifier *modifiers;
Evas_Lock *locks;
@ -187,7 +185,7 @@ struct _Evas_Event_Key_Down
struct _Evas_Event_Key_Up
{
Evas_Key *key;
char *keyname;
void *data;
Evas_Modifier *modifiers;
Evas_Lock *locks;
@ -383,7 +381,7 @@ extern "C" {
Evas_List *evas_objects_at_xy_get (Evas *e, double x, double y, int include_pass_events_objects, int include_hidden_objects);
Evas_List *evas_objects_in_rectangle_get (Evas *e, double x, double y, double w, double h, int include_pass_events_objects, int include_hidden_objects);
Evas_Smart *evas_smart_new (char *name, void (*func_add) (Evas_Object *o), void (*func_del) (Evas_Object *o), void (*func_layer_set) (Evas_Object *o, int l), void (*func_raise) (Evas_Object *o), void (*func_lower) (Evas_Object *o), void (*func_stack_above) (Evas_Object *o, Evas_Object *above), void (*func_stack_below) (Evas_Object *o, Evas_Object *below), void (*func_move) (Evas_Object *o, double x, double y), void (*func_resize) (Evas_Object *o, double w, double h), void (*func_show) (Evas_Object *o), void (*func_hide) (Evas_Object *o), void (*func_color_set) (Evas_Object *o, int r, int g, int b, int a), void (*func_clip_set) (Evas_Object *o, Evas_Object *clip), void (*func_clip_unset) (Evas_Object *o), void *data);
Evas_Smart *evas_smart_new (char *name, void (*func_add) (Evas_Object *obj), void (*func_del) (Evas_Object *obj), void (*func_layer_set) (Evas_Object *obj, int l), void (*func_raise) (Evas_Object *obj), void (*func_lower) (Evas_Object *obj), void (*func_stack_above) (Evas_Object *obj, Evas_Object *above), void (*func_stack_below) (Evas_Object *obj, Evas_Object *below), void (*func_move) (Evas_Object *obj, double x, double y), void (*func_resize) (Evas_Object *obj, double w, double h), void (*func_show) (Evas_Object *obj), void (*func_hide) (Evas_Object *obj), void (*func_color_set) (Evas_Object *obj, int r, int g, int b, int a), void (*func_clip_set) (Evas_Object *obj, Evas_Object *clip), void (*func_clip_unset) (Evas_Object *obj), void *data);
void evas_smart_free (Evas_Smart *s);
void *evas_smart_data_get (Evas_Smart *s);
@ -405,29 +403,24 @@ extern "C" {
void evas_event_feed_mouse_move_data (Evas *e, int x, int y, void *data);
void evas_event_feed_mouse_in_data (Evas *e, void *data);
void evas_event_feed_mouse_out_data (Evas *e, void *data);
/* FIXME: implement...
void evas_event_feed_key_down_data (Evas *e, char *keyname, void *data);
void evas_event_feed_key_up_data (Evas *e, char *keyname, void *data);
...end implement */
void evas_event_feed_mouse_down (Evas *e, int b);
void evas_event_feed_mouse_up (Evas *e, int b);
void evas_event_feed_mouse_move (Evas *e, int x, int y);
void evas_event_feed_mouse_in (Evas *e);
void evas_event_feed_mouse_out (Evas *e);
/* FIXME: implement...
void evas_event_feed_key_down (Evas *e, char *keyname);
void evas_event_feed_key_up (Evas *e, char *keyname);
void evas_object_focus_set (Evas_Object *o, int focus);
int evas_object_focus_get (Evas_Object *o);
void evas_object_focus_set (Evas_Object *obj, int focus);
int evas_object_focus_get (Evas_Object *obj);
Evas_Object *evas_focus_get (Evas *e);
Evas_Modifier *evas_key_modifier_get (Evas *e);
Evas_Lock *evas_key_lock_get (Evas *e);
char *evas_key_name_get (Evas_Key *k);
int evas_key_modifier_is_set_get (Evas_Modifier *m, char *keyname);
int evas_key_lock_is_set_get (Evas_Lock *l, char *keyname);
@ -442,12 +435,8 @@ extern "C" {
void evas_key_lock_on (Evas *e, char *keyname);
void evas_key_lock_off (Evas *e, char *keyname);
int evas_object_key_grab (Evas_Object *o, char *keyname, int exclusive);
void evas_object_key_ungrab (Evas_Object *o, char *keyname);
* errr need to add key grabbing/ungrabbing calls.
...end implement */
int evas_object_key_grab (Evas_Object *obj, char *keyname, int exclusive);
void evas_object_key_ungrab (Evas_Object *obj, char *keyname);
void evas_object_pass_events_set (Evas_Object *obj, int pass);
int evas_object_pass_events_get (Evas_Object *obj);

View File

@ -20,6 +20,8 @@ evas_callbacks.c \
evas_clip.c \
evas_data.c \
evas_events.c \
evas_focus.c \
evas_key.c \
evas_layer.c \
evas_main.c \
evas_name.c \

View File

@ -110,6 +110,8 @@ evas_event_feed_mouse_down_data(Evas *e, int b, void *data)
ev.canvas.x = e->pointer.canvas_x;
ev.canvas.y = e->pointer.canvas_y;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_DOWN, &ev);
}
if (copy) copy = evas_list_free(copy);
@ -143,6 +145,9 @@ evas_event_feed_mouse_up_data(Evas *e, int b, void *data)
ev.output.y = e->pointer.y;
ev.canvas.x = e->pointer.canvas_x;
ev.canvas.y = e->pointer.canvas_y;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_UP, &ev);
}
if (copy) copy = evas_list_free(copy);
@ -173,6 +178,8 @@ evas_event_feed_mouse_up_data(Evas *e, int b, void *data)
ev.canvas.x = e->pointer.canvas_x;
ev.canvas.y = e->pointer.canvas_y;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
}
}
@ -194,6 +201,8 @@ evas_event_feed_mouse_up_data(Evas *e, int b, void *data)
ev.canvas.x = e->pointer.canvas_x;
ev.canvas.y = e->pointer.canvas_y;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev);
}
}
@ -259,6 +268,8 @@ evas_event_feed_mouse_move_data(Evas *e, int x, int y, void *data)
ev.prev.canvas.x = pcx;
ev.prev.canvas.y = pcy;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev);
}
}
@ -283,6 +294,8 @@ evas_event_feed_mouse_move_data(Evas *e, int x, int y, void *data)
ev.canvas.x = e->pointer.canvas_x;
ev.canvas.y = e->pointer.canvas_y;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
}
}
@ -326,6 +339,8 @@ evas_event_feed_mouse_move_data(Evas *e, int x, int y, void *data)
ev.prev.canvas.x = pcx;
ev.prev.canvas.y = pcy;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev);
}
}
@ -341,6 +356,8 @@ evas_event_feed_mouse_move_data(Evas *e, int x, int y, void *data)
ev.canvas.x = e->pointer.canvas_x;
ev.canvas.y = e->pointer.canvas_y;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
}
}
@ -363,6 +380,8 @@ evas_event_feed_mouse_move_data(Evas *e, int x, int y, void *data)
ev.canvas.x = e->pointer.canvas_x;
ev.canvas.y = e->pointer.canvas_y;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev);
}
}
@ -391,6 +410,49 @@ evas_event_feed_mouse_out_data(Evas *e, void *data)
e->pointer.inside = 0;
}
void
evas_event_feed_key_down_data(Evas *e, char *keyname, void *data)
{
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
if (!keyname) return;
if (e->events_frozen > 0) return;
/* FIXME: handle grabs */
if (e->focused)
{
Evas_Event_Key_Down ev;
ev.keyname = keyname;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_DOWN, &ev);
}
}
void
evas_event_feed_key_up_data(Evas *e, char *keyname, void *data)
{
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
if (!keyname) return;
if (e->events_frozen > 0) return;
if (!e->focused) return;
/* FIXME: handle grabs */
if (e->focused)
{
Evas_Event_Key_Up ev;
ev.keyname = keyname;
ev.data = data;
ev.modifiers = &(e->modifiers);
ev.locks = &(e->locks);
evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_UP, &ev);
}
}
void
evas_event_feed_mouse_down(Evas *e, int b)
{
@ -421,6 +483,19 @@ evas_event_feed_mouse_out(Evas *e)
evas_event_feed_mouse_out_data(e, NULL);
}
void
evas_event_feed_key_down(Evas *e, char *keyname)
{
evas_event_feed_key_down_data(e, keyname, NULL);
}
void
evas_event_feed_key_up(Evas *e, char *keyname)
{
evas_event_feed_key_up_data(e, keyname, NULL);
}
void
evas_object_pass_events_set(Evas_Object *obj, int pass)
{

View File

@ -0,0 +1,52 @@
#include "evas_common.h"
#include "evas_private.h"
#include "Evas.h"
/* private calls */
/* local calls */
/* public calls */
void
evas_object_focus_set(Evas_Object *obj, int focus)
{
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
if (focus)
{
if (obj->focused) return;
if (obj->layer->evas->focused)
evas_object_focus_set(obj->layer->evas->focused, 0);
obj->focused = 1;
obj->layer->evas->focused = obj;
evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_IN, NULL);
}
else
{
if (!obj->focused) return;
obj->focused = 0;
obj->layer->evas->focused = NULL;
evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL);
}
}
int
evas_object_focus_get(Evas_Object *obj)
{
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
return obj->focused;
}
Evas_Object *
evas_focus_get(Evas *e)
{
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return NULL;
MAGIC_CHECK_END();
return e->focused;
}

View File

@ -0,0 +1,230 @@
#include "evas_common.h"
#include "evas_private.h"
#include "Evas.h"
/* private calls */
static int evas_key_modifier_number(Evas_Modifier *m, char *keyname);
static int evas_key_lock_number(Evas_Lock *l, char *keyname);
static int
evas_key_modifier_number(Evas_Modifier *m, char *keyname)
{
int i;
for (i = 0; i < m->mod.count; i++)
{
if (!strcmp(m->mod.list[i], keyname)) return i;
}
return -1;
}
static int
evas_key_lock_number(Evas_Lock *l, char *keyname)
{
int i;
for (i = 0; i < l->lock.count; i++)
{
if (!strcmp(l->lock.list[i], keyname)) return i;
}
return -1;
}
/* local calls */
/* public calls */
Evas_Modifier *
evas_key_modifier_get(Evas *e)
{
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return NULL;
MAGIC_CHECK_END();
return &(e->modifiers);
}
Evas_Lock *
evas_key_lock_get(Evas *e)
{
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return NULL;
MAGIC_CHECK_END();
return &(e->locks);
}
int
evas_key_modifier_is_set_get(Evas_Modifier *m, char *keyname)
{
unsigned long long num;
if (!m) return 0;
if (!keyname) return 0;
num = (unsigned long long)evas_key_modifier_number(m, keyname);
if (num < 0) return 0;
num = 1 << num;
if (m->mask & num) return 1;
return 0;
}
int
evas_key_lock_is_set_get(Evas_Lock *l, char *keyname)
{
unsigned long long num;
if (!l) return 0;
if (!keyname) return 0;
num = (unsigned long long)evas_key_lock_number(l, keyname);
if (num < 0) return 0;
num = 1 << num;
if (l->mask & num) return 1;
return 0;
}
void
evas_key_modifier_add(Evas *e, char *keyname)
{
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
if (!keyname) return;
if (e->modifiers.mod.count >= 64) return;
evas_key_modifier_del(e, keyname);
e->modifiers.mod.count++;
e->modifiers.mod.list = realloc(e->modifiers.mod.list, e->modifiers.mod.count * sizeof(char *));
e->modifiers.mod.list[e->modifiers.mod.count - 1] = strdup(keyname);
e->modifiers.mask = 0;
}
void
evas_key_modifier_del(Evas *e, char *keyname)
{
int i;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
if (!keyname) return;
for (i = 0; i < e->modifiers.mod.count; i++)
{
if (!strcmp(e->modifiers.mod.list[i], keyname))
{
int j;
free(e->modifiers.mod.list[i]);
e->modifiers.mod.count--;
for (j = i; j < e->modifiers.mod.count; j++)
e->modifiers.mod.list[j] = e->modifiers.mod.list[j + 1];
e->modifiers.mask = 0;
return;
}
}
}
void
evas_key_lock_add(Evas *e, char *keyname)
{
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
if (!keyname) return;
if (e->locks.lock.count >= 64) return;
evas_key_lock_del(e, keyname);
e->locks.lock.count++;
e->locks.lock.list = realloc(e->locks.lock.list, e->locks.lock.count * sizeof(char *));
e->locks.lock.list[e->locks.lock.count - 1] = strdup(keyname);
e->locks.mask = 0;
}
void
evas_key_lock_del(Evas *e, char *keyname)
{
int i;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
if (!keyname) return;
e->locks.mask = 0;
for (i = 0; i < e->locks.lock.count; i++)
{
if (!strcmp(e->locks.lock.list[i], keyname))
{
int j;
free(e->locks.lock.list[i]);
e->locks.lock.count--;
for (j = i; j < e->locks.lock.count; j++)
e->locks.lock.list[j] = e->locks.lock.list[j + 1];
e->locks.mask = 0;
return;
}
}
}
void
evas_key_modifier_on(Evas *e, char *keyname)
{
unsigned long long num;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
num = (unsigned long long)evas_key_modifier_number(&(e->modifiers), keyname);
if (num < 0) return;
num = 1 << num;
e->modifiers.mask |= num;
}
void
evas_key_modifier_off(Evas *e, char *keyname)
{
unsigned long long num;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
num = (unsigned long long)evas_key_modifier_number(&(e->modifiers), keyname);
if (num < 0) return;
num = 1 << num;
e->modifiers.mask &= ~num;
}
void
evas_key_lock_on(Evas *e, char *keyname)
{
unsigned long long num;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
num = (unsigned long long)evas_key_lock_number(&(e->locks), keyname);
if (num < 0) return;
num = 1 << num;
e->locks.mask |= num;
}
void
evas_key_lock_off(Evas *e, char *keyname)
{
unsigned long long num;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
num = (unsigned long long)evas_key_lock_number(&(e->locks), keyname);
if (num < 0) return;
num = 1 << num;
e->locks.mask &= ~num;
}
/* errr need to add key grabbing/ungrabbing calls - missing modifier stuff. */
int
evas_object_key_grab(Evas_Object *obj, char *keyname, int exclusive)
{
}
void
evas_object_key_ungrab(Evas_Object *obj, char *keyname)
{
}

View File

@ -52,7 +52,7 @@ evas_object_intercept_call_show(Evas_Object *obj)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->show.func;
ret = (int)obj->interceptors->show.func;
if (obj->interceptors->show.func)
obj->interceptors->show.func(obj->interceptors->show.data, obj);
obj->intercepted = 0;
@ -68,7 +68,7 @@ evas_object_intercept_call_hide(Evas_Object *obj)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->hide.func;
ret = (int)obj->interceptors->hide.func;
if (obj->interceptors->hide.func)
obj->interceptors->hide.func(obj->interceptors->hide.data, obj);
obj->intercepted = 0;
@ -84,7 +84,7 @@ evas_object_intercept_call_move(Evas_Object *obj, double x, double y)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->move.func;
ret = (int)obj->interceptors->move.func;
if (obj->interceptors->move.func)
obj->interceptors->move.func(obj->interceptors->move.data, obj, x, y);
obj->intercepted = 0;
@ -100,7 +100,7 @@ evas_object_intercept_call_resize(Evas_Object *obj, double w, double h)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->resize.func;
ret = (int)obj->interceptors->resize.func;
if (obj->interceptors->resize.func)
obj->interceptors->resize.func(obj->interceptors->resize.data, obj, w, h);
obj->intercepted = 0;
@ -116,7 +116,7 @@ evas_object_intercept_call_raise(Evas_Object *obj)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->raise.func;
ret = (int)obj->interceptors->raise.func;
if (obj->interceptors->raise.func)
obj->interceptors->raise.func(obj->interceptors->raise.data, obj);
obj->intercepted = 0;
@ -132,7 +132,7 @@ evas_object_intercept_call_lower(Evas_Object *obj)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->lower.func;
ret = (int)obj->interceptors->lower.func;
if (obj->interceptors->lower.func)
obj->interceptors->lower.func(obj->interceptors->lower.data, obj);
obj->intercepted = 0;
@ -148,7 +148,7 @@ evas_object_intercept_call_stack_above(Evas_Object *obj, Evas_Object *above)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->stack_above.func;
ret = (int)obj->interceptors->stack_above.func;
if (obj->interceptors->stack_above.func)
obj->interceptors->stack_above.func(obj->interceptors->stack_above.data, obj, above);
obj->intercepted = 0;
@ -164,7 +164,7 @@ evas_object_intercept_call_stack_below(Evas_Object *obj, Evas_Object *below)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->stack_below.func;
ret = (int)obj->interceptors->stack_below.func;
if (obj->interceptors->stack_below.func)
obj->interceptors->stack_below.func(obj->interceptors->stack_below.data, obj, below);
obj->intercepted = 0;
@ -180,7 +180,7 @@ evas_object_intercept_call_layer_set(Evas_Object *obj, int l)
if (!obj->interceptors) return 0;
if (obj->intercepted) return 0;
obj->intercepted = 1;
ret = obj->interceptors->layer_set.func;
ret = (int)obj->interceptors->layer_set.func;
if (obj->interceptors->layer_set.func)
obj->interceptors->layer_set.func(obj->interceptors->layer_set.data, obj, l);
obj->intercepted = 0;

View File

@ -408,6 +408,12 @@ evas_object_del(Evas_Object *obj)
evas_object_free(obj, 1);
return;
}
if (obj->focused)
{
obj->focused = 0;
obj->layer->evas->focused = NULL;
evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL);
}
evas_object_hide(obj);
while (obj->clip.clipees) evas_object_clip_unset(obj->clip.clipees->data);
if (obj->cur.clipper) evas_object_clip_unset(obj);
@ -587,6 +593,8 @@ evas_object_hide(Evas_Object *obj)
ev.canvas.x = obj->layer->evas->pointer.canvas_x;
ev.canvas.y = obj->layer->evas->pointer.canvas_y;
ev.data = NULL;
ev.modifiers = &(obj->layer->evas->modifiers);
ev.locks = &(obj->layer->evas->locks);
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
}
}

View File

@ -237,7 +237,7 @@ evas_engine_directfb_output_resize(void *data, int w, int h)
re->backbuf = new_surf;
re->rgba_image->image->w = w;
re->rgba_image->image->h = h;
re->rgba_image->image->data = new_surf;
re->rgba_image->image->data = (void *)new_surf;
}
}

View File

@ -42,7 +42,6 @@ typedef struct _Evas_Data_Node Evas_Data_Node;
typedef struct _Evas_Func_Node Evas_Func_Node;
typedef struct _Evas_Func Evas_Func;
typedef struct _Evas_Object_Func Evas_Object_Func;
typedef struct _Evas_Key Evas_Key;
typedef struct _Evas_Modifier Evas_Modifier;
typedef struct _Evas_Lock Evas_Lock;
typedef struct _Evas_Smart Evas_Smart;
@ -162,16 +161,11 @@ struct _Evas_Smart
void (*func_clip_unset) (Evas_Object *o);
};
struct _Evas_Key
{
char *name; /* string version of key code enum */
};
struct _Evas_Modifier
{
struct {
int count;
Evas_Key *list;
char **list;
} mod;
unsigned long long mask; /* ok we have a max of 64 modifiers */
};
@ -180,7 +174,7 @@ struct _Evas_Lock
{
struct {
int count;
Evas_Key *list;
char **list;
} lock;
unsigned long long mask; /* we have a max of 64 locks */
};
@ -241,7 +235,11 @@ struct _Evas
int info_magic;
} engine;
Evas_List *font_path;
Evas_List *font_path;
Evas_Object *focused;
Evas_Modifier modifiers;
Evas_Lock locks;
};
struct _Evas_Layer
@ -306,6 +304,7 @@ struct _Evas_Object
int mouse_grabbed : 1;
int pre_render_done : 1;
int intercepted : 1;
int focused : 1;
int delete_me;