forked from enlightenment/efl
[ecore_evas_extn] add function to block mouse event.
Summary: add ecore_evas_extn_socket_events_block_set/get Test Plan: add mouse event callback, and check whether it could get event or not Reviewers: raster, woohyun, jaehwan, Sergeant_Whitespace Reviewed By: Sergeant_Whitespace Subscribers: Sergeant_Whitespace, seoz, cedric Differential Revision: https://phab.enlightenment.org/D2268
This commit is contained in:
parent
bb13b45e80
commit
f372eb4b92
|
@ -4,7 +4,7 @@
|
|||
* For checking with ecore evas extn socket, please run with ecore_evas_extn_socket_example.
|
||||
*
|
||||
* @verbatim
|
||||
* gcc -o ecore_evas_extn_plug_example ecore_evas_extn_plug_example.c `pkg-config --libs --cflags ecore-evas`
|
||||
* gcc -o ecore_evas_extn_plug_example ecore_evas_extn_plug_example.c `pkg-config --libs --cflags evas ecore ecore-evas`
|
||||
* @endverbatim
|
||||
*/
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* You can check functions of ecore extn socket if you use ecore extn plug together.
|
||||
*
|
||||
* @verbatim
|
||||
* gcc -o ecore_evas_extn_socket_example ecore_evas_extn_socket_example.c `pkg-config --libs --cflags ecore-evas`
|
||||
* gcc -o ecore_evas_extn_socket_example ecore_evas_extn_socket_example.c `pkg-config --libs --cflags evas ecore ecore-evas`
|
||||
* @endverbatim
|
||||
*/
|
||||
|
||||
|
@ -193,6 +193,8 @@ main(void)
|
|||
evas_object_show(sock_bg);
|
||||
ecore_evas_data_set(ee_socket, "bg", sock_bg);
|
||||
|
||||
ecore_evas_extn_socket_events_block_set(ee_socket, EINA_FALSE);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
ecore_evas_free(ee);
|
||||
|
|
|
@ -2650,6 +2650,31 @@ EAPI Ecore_Evas *ecore_evas_extn_socket_new(int w, int h);
|
|||
*/
|
||||
EAPI Eina_Bool ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname, int svcnum, Eina_Bool svcsys);
|
||||
|
||||
/**
|
||||
* @brief Set the blocking about mouse events to Ecore Evas.
|
||||
*
|
||||
* @param ee The Ecore_Evas.
|
||||
* @param events_block The blocking about mouse events.
|
||||
*
|
||||
* @see ecore_evas_extn_socket_events_block_get()
|
||||
*
|
||||
* @since 1.15
|
||||
*/
|
||||
EAPI void ecore_evas_extn_socket_events_block_set(Ecore_Evas *ee, Eina_Bool events_block);
|
||||
|
||||
/**
|
||||
* @brief Get the blocking about mouse events to Ecore Evas.
|
||||
*
|
||||
* @param ee The Ecore_Evas.
|
||||
|
||||
* @return The blocking about mouse events.
|
||||
*
|
||||
* @see ecore_evas_extn_socket_events_block_set()
|
||||
*
|
||||
* @since 1.15
|
||||
*/
|
||||
EAPI Eina_Bool ecore_evas_extn_socket_events_block_get(Ecore_Evas *ee);
|
||||
|
||||
/**
|
||||
* @brief Lock the pixel data so the socket cannot change it
|
||||
*
|
||||
|
|
|
@ -3778,6 +3778,34 @@ ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname, int svcnum, E
|
|||
return iface->listen(ee, svcname, svcnum, svcsys);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
ecore_evas_extn_socket_events_block_set(Ecore_Evas *ee, Eina_Bool events_block)
|
||||
{
|
||||
void (*set)(Ecore_Evas*, Eina_Bool);
|
||||
Eina_Module *m = _ecore_evas_engine_load("extn");
|
||||
EINA_SAFETY_ON_NULL_RETURN(m);
|
||||
|
||||
set = eina_module_symbol_get(m,
|
||||
"ecore_evas_extn_socket_events_block_set_internal");
|
||||
EINA_SAFETY_ON_NULL_RETURN(set);
|
||||
|
||||
set(ee, events_block);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
ecore_evas_extn_socket_events_block_get(Ecore_Evas *ee)
|
||||
{
|
||||
Eina_Bool (*get)(Ecore_Evas*);
|
||||
Eina_Module *m = _ecore_evas_engine_load("extn");
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(m, EINA_FALSE);
|
||||
|
||||
get = eina_module_symbol_get(m,
|
||||
"ecore_evas_extn_socket_events_block_get_internal");
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(get, EINA_FALSE);
|
||||
|
||||
return get(ee);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
ecore_evas_extn_plug_object_data_lock(Evas_Object *obj)
|
||||
{
|
||||
|
|
|
@ -190,6 +190,7 @@ struct _Ecore_Evas
|
|||
Eina_Bool alpha : 1;
|
||||
Eina_Bool transparent : 1;
|
||||
Eina_Bool in : 1;
|
||||
Eina_Bool events_block : 1; /* @since 1.14 */
|
||||
|
||||
Eina_Hash *data;
|
||||
|
||||
|
|
|
@ -1646,6 +1646,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_IN:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_In))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_In *ipc = e->data;
|
||||
|
@ -1659,6 +1660,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_OUT:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Out))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Out *ipc = e->data;
|
||||
|
@ -1672,6 +1674,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_UP:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Up))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Up *ipc = e->data;
|
||||
|
@ -1685,6 +1688,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_DOWN:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Down))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Up *ipc = e->data;
|
||||
|
@ -1698,6 +1702,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_MOVE:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Move))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Move *ipc = e->data;
|
||||
|
@ -1711,6 +1716,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MOUSE_WHEEL:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Wheel))
|
||||
{
|
||||
Ipc_Data_Ev_Mouse_Wheel *ipc = e->data;
|
||||
|
@ -1724,6 +1730,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MULTI_UP:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Up))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Up *ipc = e->data;
|
||||
|
@ -1737,6 +1744,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MULTI_DOWN:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Down))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Down *ipc = e->data;
|
||||
|
@ -1750,6 +1758,7 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event)
|
|||
}
|
||||
break;
|
||||
case OP_EV_MULTI_MOVE:
|
||||
if (ee->events_block) break;
|
||||
if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Move))
|
||||
{
|
||||
Ipc_Data_Ev_Multi_Move *ipc = e->data;
|
||||
|
@ -2245,5 +2254,17 @@ _ecore_evas_extn_interface_new(void)
|
|||
return iface;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
ecore_evas_extn_socket_events_block_set_internal(Ecore_Evas *ee, Eina_Bool events_block)
|
||||
{
|
||||
ee->events_block = events_block;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
ecore_evas_extn_socket_events_block_get_internal(Ecore_Evas *ee)
|
||||
{
|
||||
return ee->events_block;
|
||||
}
|
||||
|
||||
EINA_MODULE_INIT(_ecore_evas_extn_module_init);
|
||||
EINA_MODULE_SHUTDOWN(_ecore_evas_extn_module_shutdown);
|
||||
|
|
Loading…
Reference in New Issue