fix e_client sructure for running wayland client applications inside X.
update compositor structure for ability to run X and Wayland Clients. update wayland compositor data & input file(s) for data structure rename. NB: Both the X compositor and the Wayland compositor have different "client data" to store, so e_client structure needs different fields Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
ff06207d9c
commit
0b0c464efd
|
@ -257,7 +257,8 @@ struct E_Client
|
|||
|
||||
E_Direction shade_dir;
|
||||
|
||||
E_Comp_Client_Data *comp_data; //private for the compositor engine (X, Wayland) ONLY
|
||||
E_Comp_Wl_Client_Data *wl_comp_data;
|
||||
E_Comp_X_Client_Data *x_comp_data; //private for the compositor engine (X, Wayland) ONLY
|
||||
|
||||
Evas_Object *input_object; //for running wayland clients in X
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
#ifdef E_TYPEDEFS
|
||||
typedef struct _E_Comp E_Comp;
|
||||
typedef struct _E_Comp_Data E_Comp_Data;
|
||||
typedef struct _E_Comp_Client_Data E_Comp_Client_Data;
|
||||
typedef struct _E_Comp_X_Data E_Comp_X_Data;
|
||||
typedef struct _E_Comp_Wl_Data E_Comp_Wl_Data;
|
||||
typedef struct _E_Comp_X_Client_Data E_Comp_X_Client_Data;
|
||||
typedef struct _E_Comp_Wl_Client_Data E_Comp_Wl_Client_Data;
|
||||
typedef struct _E_Comp_Demo_Style_Item E_Comp_Demo_Style_Item;
|
||||
|
||||
#define E_COMP_TYPE (int) 0xE0b01003
|
||||
|
@ -56,7 +58,9 @@ struct _E_Comp
|
|||
Eina_List *clients;
|
||||
unsigned int new_clients;
|
||||
|
||||
E_Comp_Data *comp_data;
|
||||
E_Comp_X_Data *x_comp_data;
|
||||
E_Comp_Wl_Data *wl_comp_data;
|
||||
|
||||
E_Pixmap_Type comp_type; //for determining X/Wayland/
|
||||
|
||||
unsigned int num;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
# define BTN_BACK 0x116
|
||||
# endif
|
||||
|
||||
struct _E_Comp_Data
|
||||
struct _E_Comp_Wl_Data
|
||||
{
|
||||
struct
|
||||
{
|
||||
|
@ -120,7 +120,7 @@ struct _E_Comp_Data
|
|||
Eina_Bool restack : 1;
|
||||
};
|
||||
|
||||
struct _E_Comp_Client_Data
|
||||
struct _E_Comp_Wl_Client_Data
|
||||
{
|
||||
Eina_Rectangle *input;
|
||||
Eina_Rectangle *opaque;
|
||||
|
|
|
@ -29,7 +29,7 @@ _e_comp_wl_data_manager_cb_source_create(struct wl_client *client, struct wl_res
|
|||
static void
|
||||
_e_comp_wl_data_manager_cb_device_get(struct wl_client *client EINA_UNUSED, struct wl_resource *manager_resource, uint32_t id, struct wl_resource *seat_resource)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
struct wl_resource *res;
|
||||
|
||||
DBG("Comp_Wl_Data: Get Data Device");
|
||||
|
@ -58,7 +58,7 @@ static const struct wl_data_device_manager_interface _e_manager_interface =
|
|||
/* static void */
|
||||
/* _e_comp_wl_data_cb_unbind_manager(struct wl_resource *resource) */
|
||||
/* { */
|
||||
/* E_Comp_Data *cdata; */
|
||||
/* E_Comp_Wl_Data *cdata; */
|
||||
|
||||
/* DBG("Comp_Wl_Data: Unbind Manager"); */
|
||||
|
||||
|
@ -70,7 +70,7 @@ static const struct wl_data_device_manager_interface _e_manager_interface =
|
|||
static void
|
||||
_e_comp_wl_data_cb_bind_manager(struct wl_client *client, void *data, uint32_t version EINA_UNUSED, uint32_t id)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
struct wl_resource *res;
|
||||
|
||||
if (!(cdata = data)) return;
|
||||
|
@ -90,7 +90,7 @@ _e_comp_wl_data_cb_bind_manager(struct wl_client *client, void *data, uint32_t v
|
|||
}
|
||||
|
||||
EINTERN Eina_Bool
|
||||
e_comp_wl_data_manager_init(E_Comp_Data *cdata)
|
||||
e_comp_wl_data_manager_init(E_Comp_Wl_Data *cdata)
|
||||
{
|
||||
/* check for valid compositor data */
|
||||
if (!cdata) return EINA_FALSE;
|
||||
|
@ -109,8 +109,8 @@ e_comp_wl_data_manager_init(E_Comp_Data *cdata)
|
|||
}
|
||||
|
||||
EINTERN void
|
||||
e_comp_wl_data_manager_shutdown(E_Comp_Data *cdata)
|
||||
e_comp_wl_data_manager_shutdown(E_Comp_Wl_Data *cdata)
|
||||
{
|
||||
/* destroy the global manager resource */
|
||||
if (cdata->mgr.global) wl_global_destroy(cdata->mgr.global);
|
||||
/* if (cdata->mgr.global) wl_global_destroy(cdata->mgr.global); */
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
# ifndef E_COMP_WL_DATA_H
|
||||
# define E_COMP_WL_DATA_H
|
||||
|
||||
EINTERN Eina_Bool e_comp_wl_data_manager_init(E_Comp_Data *cdata);
|
||||
EINTERN void e_comp_wl_data_manager_shutdown(E_Comp_Data *cdata);
|
||||
EINTERN Eina_Bool e_comp_wl_data_manager_init(E_Comp_Wl_Data *cdata);
|
||||
EINTERN void e_comp_wl_data_manager_shutdown(E_Comp_Wl_Data *cdata);
|
||||
|
||||
# endif
|
||||
#endif
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <sys/mman.h>
|
||||
|
||||
static void
|
||||
_e_comp_wl_input_update_seat_caps(E_Comp_Data *cdata)
|
||||
_e_comp_wl_input_update_seat_caps(E_Comp_Wl_Data *cdata)
|
||||
{
|
||||
Eina_List *l;
|
||||
struct wl_resource *res;
|
||||
|
@ -32,7 +32,7 @@ _e_comp_wl_input_cb_resource_destroy(struct wl_client *client EINA_UNUSED, struc
|
|||
static void
|
||||
_e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resource *resource, uint32_t serial, struct wl_resource *surface_resource, int32_t x, int32_t y)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
|
||||
/* get compositor data */
|
||||
if (!(cdata = wl_resource_get_user_data(resource))) return;
|
||||
|
@ -52,7 +52,7 @@ static const struct wl_keyboard_interface _e_keyboard_interface =
|
|||
static void
|
||||
_e_comp_wl_input_cb_pointer_unbind(struct wl_resource *resource)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
|
||||
/* get compositor data */
|
||||
if (!(cdata = wl_resource_get_user_data(resource))) return;
|
||||
|
@ -63,7 +63,7 @@ _e_comp_wl_input_cb_pointer_unbind(struct wl_resource *resource)
|
|||
static void
|
||||
_e_comp_wl_input_cb_pointer_get(struct wl_client *client, struct wl_resource *resource, uint32_t id)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
struct wl_resource *res;
|
||||
|
||||
/* get compositor data */
|
||||
|
@ -87,7 +87,7 @@ _e_comp_wl_input_cb_pointer_get(struct wl_client *client, struct wl_resource *re
|
|||
static void
|
||||
_e_comp_wl_input_cb_keyboard_unbind(struct wl_resource *resource)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
|
||||
/* get compositor data */
|
||||
if (!(cdata = wl_resource_get_user_data(resource))) return;
|
||||
|
@ -98,7 +98,7 @@ _e_comp_wl_input_cb_keyboard_unbind(struct wl_resource *resource)
|
|||
static void
|
||||
_e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *resource, uint32_t id)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
struct wl_resource *res;
|
||||
/* uint32_t serial; */
|
||||
|
||||
|
@ -134,7 +134,7 @@ _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *r
|
|||
static void
|
||||
_e_comp_wl_input_cb_touch_get(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t id EINA_UNUSED)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
|
||||
/* DBG("Input Touch Get"); */
|
||||
|
||||
|
@ -154,7 +154,7 @@ static const struct wl_seat_interface _e_seat_interface =
|
|||
static void
|
||||
_e_comp_wl_input_cb_unbind_seat(struct wl_resource *resource)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
|
||||
if (!(cdata = wl_resource_get_user_data(resource))) return;
|
||||
|
||||
|
@ -164,7 +164,7 @@ _e_comp_wl_input_cb_unbind_seat(struct wl_resource *resource)
|
|||
static void
|
||||
_e_comp_wl_input_cb_bind_seat(struct wl_client *client, void *data, uint32_t version, uint32_t id)
|
||||
{
|
||||
E_Comp_Data *cdata;
|
||||
E_Comp_Wl_Data *cdata;
|
||||
struct wl_resource *res;
|
||||
|
||||
if (!(cdata = data)) return;
|
||||
|
@ -226,7 +226,7 @@ _e_comp_wl_input_keymap_fd_get(off_t size)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_wl_input_keymap_update(E_Comp_Data *cdata, struct xkb_keymap *keymap)
|
||||
_e_comp_wl_input_keymap_update(E_Comp_Wl_Data *cdata, struct xkb_keymap *keymap)
|
||||
{
|
||||
char *tmp;
|
||||
xkb_mod_mask_t latched, locked;
|
||||
|
@ -311,7 +311,7 @@ _e_comp_wl_input_keymap_update(E_Comp_Data *cdata, struct xkb_keymap *keymap)
|
|||
}
|
||||
|
||||
EINTERN Eina_Bool
|
||||
e_comp_wl_input_init(E_Comp_Data *cdata)
|
||||
e_comp_wl_input_init(E_Comp_Wl_Data *cdata)
|
||||
{
|
||||
/* check for valid compositor data */
|
||||
if (!cdata) return EINA_FALSE;
|
||||
|
@ -335,7 +335,7 @@ e_comp_wl_input_init(E_Comp_Data *cdata)
|
|||
}
|
||||
|
||||
EINTERN void
|
||||
e_comp_wl_input_shutdown(E_Comp_Data *cdata)
|
||||
e_comp_wl_input_shutdown(E_Comp_Wl_Data *cdata)
|
||||
{
|
||||
/* Eina_List *l; */
|
||||
struct wl_resource *res;
|
||||
|
@ -356,7 +356,7 @@ e_comp_wl_input_shutdown(E_Comp_Data *cdata)
|
|||
/* TODO: destroy cdata->kbd.keys array */
|
||||
|
||||
/* destroy the global seat resource */
|
||||
if (cdata->seat.global) wl_global_destroy(cdata->seat.global);
|
||||
/* if (cdata->seat.global) wl_global_destroy(cdata->seat.global); */
|
||||
cdata->seat.global = NULL;
|
||||
}
|
||||
|
||||
|
@ -375,7 +375,7 @@ e_comp_wl_input_keyboard_check(struct wl_resource *res)
|
|||
}
|
||||
|
||||
EINTERN void
|
||||
e_comp_wl_input_keyboard_modifiers_update(E_Comp_Data *cdata)
|
||||
e_comp_wl_input_keyboard_modifiers_update(E_Comp_Wl_Data *cdata)
|
||||
{
|
||||
xkb_mod_mask_t depressed, latched, locked;
|
||||
xkb_layout_index_t group;
|
||||
|
@ -411,7 +411,7 @@ e_comp_wl_input_keyboard_modifiers_update(E_Comp_Data *cdata)
|
|||
}
|
||||
|
||||
EINTERN void
|
||||
e_comp_wl_input_keyboard_state_update(E_Comp_Data *cdata, uint32_t keycode, Eina_Bool pressed)
|
||||
e_comp_wl_input_keyboard_state_update(E_Comp_Wl_Data *cdata, uint32_t keycode, Eina_Bool pressed)
|
||||
{
|
||||
enum xkb_key_direction dir;
|
||||
|
||||
|
@ -426,7 +426,7 @@ e_comp_wl_input_keyboard_state_update(E_Comp_Data *cdata, uint32_t keycode, Eina
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
|
||||
e_comp_wl_input_pointer_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled)
|
||||
{
|
||||
/* check for valid compositor data */
|
||||
if (!cdata) return;
|
||||
|
@ -436,7 +436,7 @@ e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
|
||||
e_comp_wl_input_keyboard_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled)
|
||||
{
|
||||
/* check for valid compositor data */
|
||||
if (!cdata) return;
|
||||
|
@ -446,7 +446,7 @@ e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_wl_input_keymap_set(E_Comp_Data *cdata, const char *rules, const char *model, const char *layout)
|
||||
e_comp_wl_input_keymap_set(E_Comp_Wl_Data *cdata, const char *rules, const char *model, const char *layout)
|
||||
{
|
||||
struct xkb_keymap *keymap;
|
||||
struct xkb_rule_names names;
|
||||
|
|
|
@ -3,18 +3,18 @@
|
|||
# ifndef E_COMP_WL_INPUT_H
|
||||
# define E_COMP_WL_INPUT_H
|
||||
|
||||
EINTERN Eina_Bool e_comp_wl_input_init(E_Comp_Data *cdata);
|
||||
EINTERN void e_comp_wl_input_shutdown(E_Comp_Data *cdata);
|
||||
EINTERN Eina_Bool e_comp_wl_input_init(E_Comp_Wl_Data *cdata);
|
||||
EINTERN void e_comp_wl_input_shutdown(E_Comp_Wl_Data *cdata);
|
||||
EINTERN Eina_Bool e_comp_wl_input_pointer_check(struct wl_resource *res);
|
||||
EINTERN Eina_Bool e_comp_wl_input_keyboard_check(struct wl_resource *res);
|
||||
|
||||
EINTERN void e_comp_wl_input_keyboard_modifiers_update(E_Comp_Data *cdata);
|
||||
EINTERN void e_comp_wl_input_keyboard_state_update(E_Comp_Data *cdata, uint32_t keycode, Eina_Bool pressed);
|
||||
EINTERN void e_comp_wl_input_keyboard_modifiers_update(E_Comp_Wl_Data *cdata);
|
||||
EINTERN void e_comp_wl_input_keyboard_state_update(E_Comp_Wl_Data *cdata, uint32_t keycode, Eina_Bool pressed);
|
||||
|
||||
EAPI void e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled);
|
||||
EAPI void e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled);
|
||||
EAPI void e_comp_wl_input_pointer_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled);
|
||||
EAPI void e_comp_wl_input_keyboard_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled);
|
||||
|
||||
EAPI void e_comp_wl_input_keymap_set(E_Comp_Data *cdata, const char *rules, const char *model, const char *layout);
|
||||
EAPI void e_comp_wl_input_keymap_set(E_Comp_Wl_Data *cdata, const char *rules, const char *model, const char *layout);
|
||||
|
||||
# endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue