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:
Chris Michael 2014-05-15 10:41:09 +01:00
parent ff06207d9c
commit 0b0c464efd
7 changed files with 45 additions and 40 deletions

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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); */
}

View File

@ -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

View File

@ -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;

View File

@ -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