forked from enlightenment/efl
parent
e2b1ac1f61
commit
66faed1695
|
@ -497,7 +497,7 @@ _ecore_evas_extn_free(Ecore_Evas *ee)
|
|||
shmfile_free(extn->file.shmfile);
|
||||
}
|
||||
EINA_LIST_FREE(extn->ipc.handlers, hdl)
|
||||
ecore_event_handler_del(hdl);
|
||||
ecore_event_handler_del(hdl);
|
||||
free(extn);
|
||||
ecore_ipc_shutdown();
|
||||
ee->engine.buffer.data = NULL;
|
||||
|
@ -1177,98 +1177,98 @@ _ipc_client_data(void *data, int type __UNUSED__, void *event)
|
|||
extn = ee->engine.buffer.data;
|
||||
if (!extn) return ECORE_CALLBACK_PASS_ON;
|
||||
if (e->major != MAJOR)
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
switch (e->minor)
|
||||
{
|
||||
case OP_UPDATE:
|
||||
// add rect to update list
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Update))
|
||||
{
|
||||
Ipc_Data_Update *ipc = malloc(sizeof(Ipc_Data_Update));
|
||||
if (ipc)
|
||||
{
|
||||
memcpy(ipc, e->data, sizeof(Ipc_Data_Update));
|
||||
extn->file.updates = eina_list_append(extn->file.updates, ipc);
|
||||
}
|
||||
}
|
||||
break;
|
||||
// add rect to update list
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Update))
|
||||
{
|
||||
Ipc_Data_Update *ipc = malloc(sizeof(Ipc_Data_Update));
|
||||
if (ipc)
|
||||
{
|
||||
memcpy(ipc, e->data, sizeof(Ipc_Data_Update));
|
||||
extn->file.updates = eina_list_append(extn->file.updates, ipc);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case OP_UPDATE_DONE:
|
||||
// updates finished being sent - done now. frame ready
|
||||
{
|
||||
Ipc_Data_Update *ipc;
|
||||
// updates finished being sent - done now. frame ready
|
||||
{
|
||||
Ipc_Data_Update *ipc;
|
||||
|
||||
EINA_LIST_FREE(extn->file.updates, ipc)
|
||||
{
|
||||
if (ee->engine.buffer.image)
|
||||
evas_object_image_data_update_add(ee->engine.buffer.image,
|
||||
ipc->x, ipc->y,
|
||||
ipc->w, ipc->h);
|
||||
}
|
||||
}
|
||||
break;
|
||||
EINA_LIST_FREE(extn->file.updates, ipc)
|
||||
{
|
||||
if (ee->engine.buffer.image)
|
||||
evas_object_image_data_update_add(ee->engine.buffer.image,
|
||||
ipc->x, ipc->y,
|
||||
ipc->w, ipc->h);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case OP_SHM_REF:
|
||||
// e->ref == w
|
||||
// e->ref_to == h
|
||||
// e->response == alpha
|
||||
// e->data = shm ref string + nul byte
|
||||
if ((e->data) && ((unsigned char *)e->data)[e->size - 1] == 0)
|
||||
{
|
||||
ee->engine.buffer.pixels = NULL;
|
||||
if (extn->file.shmfile)
|
||||
{
|
||||
shmfile_close(extn->file.shmfile);
|
||||
extn->file.shmfile = NULL;
|
||||
}
|
||||
if (extn->file.shm)
|
||||
{
|
||||
eina_stringshare_del(extn->file.shm);
|
||||
extn->file.shm = NULL;
|
||||
}
|
||||
if ((e->ref > 0) && (e->ref_to > 0))
|
||||
{
|
||||
extn->file.w = e->ref;
|
||||
extn->file.h = e->ref_to;
|
||||
extn->file.shm = eina_stringshare_add(e->data);
|
||||
extn->file.shmfile = shmfile_open(extn->file.shm,
|
||||
extn->file.w *
|
||||
extn->file.h * 4,
|
||||
EINA_TRUE);
|
||||
if (extn->file.shmfile)
|
||||
{
|
||||
ee->engine.buffer.pixels = extn->file.shmfile->addr;
|
||||
if (ee->engine.buffer.image)
|
||||
{
|
||||
if (e->response)
|
||||
evas_object_image_alpha_set(ee->engine.buffer.image,
|
||||
EINA_TRUE);
|
||||
else
|
||||
evas_object_image_alpha_set(ee->engine.buffer.image,
|
||||
EINA_FALSE);
|
||||
evas_object_image_size_set(ee->engine.buffer.image,
|
||||
extn->file.w,
|
||||
extn->file.h);
|
||||
evas_object_image_data_set(ee->engine.buffer.image,
|
||||
ee->engine.buffer.pixels);
|
||||
evas_object_image_data_update_add(ee->engine.buffer.image,
|
||||
0, 0,
|
||||
extn->file.w,
|
||||
extn->file.h);
|
||||
_ecore_evas_resize(ee,
|
||||
extn->file.w,
|
||||
extn->file.h);
|
||||
}
|
||||
else
|
||||
evas_object_image_data_set(ee->engine.buffer.image, NULL);
|
||||
}
|
||||
else
|
||||
evas_object_image_data_set(ee->engine.buffer.image, NULL);
|
||||
}
|
||||
else
|
||||
evas_object_image_data_set(ee->engine.buffer.image, NULL);
|
||||
}
|
||||
break;
|
||||
// e->ref == w
|
||||
// e->ref_to == h
|
||||
// e->response == alpha
|
||||
// e->data = shm ref string + nul byte
|
||||
if ((e->data) && ((unsigned char *)e->data)[e->size - 1] == 0)
|
||||
{
|
||||
ee->engine.buffer.pixels = NULL;
|
||||
if (extn->file.shmfile)
|
||||
{
|
||||
shmfile_close(extn->file.shmfile);
|
||||
extn->file.shmfile = NULL;
|
||||
}
|
||||
if (extn->file.shm)
|
||||
{
|
||||
eina_stringshare_del(extn->file.shm);
|
||||
extn->file.shm = NULL;
|
||||
}
|
||||
if ((e->ref > 0) && (e->ref_to > 0))
|
||||
{
|
||||
extn->file.w = e->ref;
|
||||
extn->file.h = e->ref_to;
|
||||
extn->file.shm = eina_stringshare_add(e->data);
|
||||
extn->file.shmfile = shmfile_open(extn->file.shm,
|
||||
extn->file.w *
|
||||
extn->file.h * 4,
|
||||
EINA_TRUE);
|
||||
if (extn->file.shmfile)
|
||||
{
|
||||
ee->engine.buffer.pixels = extn->file.shmfile->addr;
|
||||
if (ee->engine.buffer.image)
|
||||
{
|
||||
if (e->response)
|
||||
evas_object_image_alpha_set(ee->engine.buffer.image,
|
||||
EINA_TRUE);
|
||||
else
|
||||
evas_object_image_alpha_set(ee->engine.buffer.image,
|
||||
EINA_FALSE);
|
||||
evas_object_image_size_set(ee->engine.buffer.image,
|
||||
extn->file.w,
|
||||
extn->file.h);
|
||||
evas_object_image_data_set(ee->engine.buffer.image,
|
||||
ee->engine.buffer.pixels);
|
||||
evas_object_image_data_update_add(ee->engine.buffer.image,
|
||||
0, 0,
|
||||
extn->file.w,
|
||||
extn->file.h);
|
||||
_ecore_evas_resize(ee,
|
||||
extn->file.w,
|
||||
extn->file.h);
|
||||
}
|
||||
else
|
||||
evas_object_image_data_set(ee->engine.buffer.image, NULL);
|
||||
}
|
||||
else
|
||||
evas_object_image_data_set(ee->engine.buffer.image, NULL);
|
||||
}
|
||||
else
|
||||
evas_object_image_data_set(ee->engine.buffer.image, NULL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
@ -1419,7 +1419,7 @@ ecore_evas_extn_socket_new(Ecore_Evas *ee_target, const char *svcname, int svcnu
|
|||
ecore_ipc_shutdown();
|
||||
ecore_evas_free(ee);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (extn->svc.sys) ipctype = ECORE_IPC_LOCAL_SYSTEM;
|
||||
extn->ipc.am_server = EINA_TRUE;
|
||||
extn->ipc.server = ecore_ipc_server_add(ipctype, extn->svc.name,
|
||||
|
@ -1440,17 +1440,17 @@ ecore_evas_extn_socket_new(Ecore_Evas *ee_target, const char *svcname, int svcnu
|
|||
}
|
||||
ee->engine.buffer.data = extn;
|
||||
extn->ipc.handlers = eina_list_append
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_ADD,
|
||||
_ipc_client_add, ee));
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_ADD,
|
||||
_ipc_client_add, ee));
|
||||
extn->ipc.handlers = eina_list_append
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DEL,
|
||||
_ipc_client_del, ee));
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DEL,
|
||||
_ipc_client_del, ee));
|
||||
extn->ipc.handlers = eina_list_append
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DATA,
|
||||
_ipc_client_data, ee));
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DATA,
|
||||
_ipc_client_data, ee));
|
||||
}
|
||||
|
||||
extn_ee_list = eina_list_append(extn_ee_list, ee);
|
||||
|
@ -1655,235 +1655,235 @@ _ipc_server_data(void *data, int type __UNUSED__, void *event)
|
|||
switch (e->minor)
|
||||
{
|
||||
case OP_RESIZE:
|
||||
if ((e->data) && (e->size >= (int)sizeof(Ipc_Data_Resize)))
|
||||
{
|
||||
Ipc_Data_Resize *ipc = e->data;
|
||||
if ((e->data) && (e->size >= (int)sizeof(Ipc_Data_Resize)))
|
||||
{
|
||||
Ipc_Data_Resize *ipc = e->data;
|
||||
|
||||
_ecore_evas_plug_resize(ee, ipc->w, ipc->h);
|
||||
}
|
||||
break;
|
||||
_ecore_evas_plug_resize(ee, ipc->w, ipc->h);
|
||||
}
|
||||
break;
|
||||
case OP_SHOW:
|
||||
if (!ee->visible)
|
||||
{
|
||||
ee->visible = 1;
|
||||
if (ee->func.fn_show) ee->func.fn_show(ee);
|
||||
}
|
||||
break;
|
||||
if (!ee->visible)
|
||||
{
|
||||
ee->visible = 1;
|
||||
if (ee->func.fn_show) ee->func.fn_show(ee);
|
||||
}
|
||||
break;
|
||||
case OP_HIDE:
|
||||
if (ee->visible)
|
||||
{
|
||||
ee->visible = 0;
|
||||
if (ee->func.fn_hide) ee->func.fn_hide(ee);
|
||||
}
|
||||
break;
|
||||
if (ee->visible)
|
||||
{
|
||||
ee->visible = 0;
|
||||
if (ee->func.fn_hide) ee->func.fn_hide(ee);
|
||||
}
|
||||
break;
|
||||
case OP_FOCUS:
|
||||
if (!ee->prop.focused)
|
||||
{
|
||||
ee->prop.focused = 1;
|
||||
evas_focus_in(ee->evas);
|
||||
if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
|
||||
}
|
||||
break;
|
||||
if (!ee->prop.focused)
|
||||
{
|
||||
ee->prop.focused = 1;
|
||||
evas_focus_in(ee->evas);
|
||||
if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
|
||||
}
|
||||
break;
|
||||
case OP_UNFOCUS:
|
||||
if (ee->prop.focused)
|
||||
{
|
||||
ee->prop.focused = 0;
|
||||
evas_focus_out(ee->evas);
|
||||
if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
|
||||
}
|
||||
break;
|
||||
if (ee->prop.focused)
|
||||
{
|
||||
ee->prop.focused = 0;
|
||||
evas_focus_out(ee->evas);
|
||||
if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
|
||||
}
|
||||
break;
|
||||
case OP_LOCK_FILE:
|
||||
if ((e->data) && (e->size > 0) &&
|
||||
(((unsigned char *)e->data)[e->size - 1] == 0))
|
||||
{
|
||||
if (extn->file.lockfd) close(extn->file.lockfd);
|
||||
if (extn->file.lock) eina_stringshare_del(extn->file.lock);
|
||||
extn->file.lock = eina_stringshare_add(e->data);
|
||||
extn->file.lockfd = open(extn->file.lock, O_RDONLY);
|
||||
}
|
||||
break;
|
||||
if ((e->data) && (e->size > 0) &&
|
||||
(((unsigned char *)e->data)[e->size - 1] == 0))
|
||||
{
|
||||
if (extn->file.lockfd) close(extn->file.lockfd);
|
||||
if (extn->file.lock) eina_stringshare_del(extn->file.lock);
|
||||
extn->file.lock = eina_stringshare_add(e->data);
|
||||
extn->file.lockfd = open(extn->file.lock, O_RDONLY);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_IN:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_In))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_In *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_In))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_In *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_in(ee->evas, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_in(ee->evas, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_OUT:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Out))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Out *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Out))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Out *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_out(ee->evas, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_out(ee->evas, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_UP:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Up))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Up))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_up(ee->evas, ipc->b, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_up(ee->evas, ipc->b, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_DOWN:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Down))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Down))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_down(ee->evas, ipc->b, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_down(ee->evas, ipc->b, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_MOVE:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Move))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Move *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Move))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Move *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_move(ee->evas, ipc->x, ipc->y, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_move(ee->evas, ipc->x, ipc->y, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_WHEEL:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Wheel))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Wheel *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Wheel))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Wheel *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_wheel(ee->evas, ipc->direction, ipc->z, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_mouse_wheel(ee->evas, ipc->direction, ipc->z, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MULTI_UP:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Up))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Up))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_multi_up(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_multi_up(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MULTI_DOWN:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Down))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Down *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Down))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Down *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_multi_down(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_multi_down(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->flags, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
case OP_EV_MULTI_MOVE:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Move))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Move *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Move))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Move *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_multi_move(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_multi_move(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
|
||||
#define STRGET(val) \
|
||||
do { \
|
||||
if ((ipc->val) && (ipc->val < (char *)(e->size - 1))) \
|
||||
ipc->val = ((char *)ipc) + (long)ipc->val; \
|
||||
else \
|
||||
ipc->val = NULL; \
|
||||
} while (0)
|
||||
do { \
|
||||
if ((ipc->val) && (ipc->val < (char *)(e->size - 1))) \
|
||||
ipc->val = ((char *)ipc) + (long)ipc->val; \
|
||||
else \
|
||||
ipc->val = NULL; \
|
||||
} while (0)
|
||||
|
||||
case OP_EV_KEY_UP:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Key_Up))
|
||||
{
|
||||
if ((e->data) && (e->size > 0) &&
|
||||
(((unsigned char *)e->data)[e->size - 1] == 0))
|
||||
{
|
||||
Ipc_Data_Ev_Key_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Key_Up))
|
||||
{
|
||||
if ((e->data) && (e->size > 0) &&
|
||||
(((unsigned char *)e->data)[e->size - 1] == 0))
|
||||
{
|
||||
Ipc_Data_Ev_Key_Up *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
STRGET(keyname);
|
||||
STRGET(key);
|
||||
STRGET(string);
|
||||
STRGET(compose);
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_key_up(ee->evas, ipc->keyname, ipc->key, ipc->string, ipc->compose, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
}
|
||||
break;
|
||||
STRGET(keyname);
|
||||
STRGET(key);
|
||||
STRGET(string);
|
||||
STRGET(compose);
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_key_up(ee->evas, ipc->keyname, ipc->key, ipc->string, ipc->compose, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case OP_EV_KEY_DOWN:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Key_Down))
|
||||
{
|
||||
if ((e->data) && (e->size > 0) &&
|
||||
(((unsigned char *)e->data)[e->size - 1] == 0))
|
||||
{
|
||||
Ipc_Data_Ev_Key_Down *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Key_Down))
|
||||
{
|
||||
if ((e->data) && (e->size > 0) &&
|
||||
(((unsigned char *)e->data)[e->size - 1] == 0))
|
||||
{
|
||||
Ipc_Data_Ev_Key_Down *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
STRGET(keyname);
|
||||
STRGET(key);
|
||||
STRGET(string);
|
||||
STRGET(compose);
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_key_down(ee->evas, ipc->keyname, ipc->key, ipc->string, ipc->compose, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
}
|
||||
break;
|
||||
STRGET(keyname);
|
||||
STRGET(key);
|
||||
STRGET(string);
|
||||
STRGET(compose);
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
_ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
|
||||
evas_event_feed_key_down(ee->evas, ipc->keyname, ipc->key, ipc->string, ipc->compose, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case OP_EV_HOLD:
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Hold))
|
||||
{
|
||||
Ipc_Data_Ev_Hold *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Hold))
|
||||
{
|
||||
Ipc_Data_Ev_Hold *ipc = e->data;
|
||||
Evas_Event_Flags flags;
|
||||
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
evas_event_feed_hold(ee->evas, ipc->hold, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
flags = evas_event_default_flags_get(ee->evas);
|
||||
evas_event_default_flags_set(ee->evas, ipc->event_flags);
|
||||
evas_event_feed_hold(ee->evas, ipc->hold, ipc->timestamp, NULL);
|
||||
evas_event_default_flags_set(ee->evas, flags);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
@ -2084,17 +2084,17 @@ ecore_evas_extn_plug_new(const char *svcname, int svcnum, Eina_Bool svcsys)
|
|||
}
|
||||
ee->engine.buffer.data = extn;
|
||||
extn->ipc.handlers = eina_list_append
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD,
|
||||
_ipc_server_add, ee));
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD,
|
||||
_ipc_server_add, ee));
|
||||
extn->ipc.handlers = eina_list_append
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL,
|
||||
_ipc_server_del, ee));
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL,
|
||||
_ipc_server_del, ee));
|
||||
extn->ipc.handlers = eina_list_append
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA,
|
||||
_ipc_server_data, ee));
|
||||
(extn->ipc.handlers,
|
||||
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA,
|
||||
_ipc_server_data, ee));
|
||||
}
|
||||
extn_ee_list = eina_list_append(extn_ee_list, ee);
|
||||
|
||||
|
|
Loading…
Reference in New Issue