Fix building Enlightenment for X11-only, Wayland-Only, and X11 with Wayland clients.

Signed-off-by: Chris Michael <cp.michael@samsung.com>

Additional authors: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Mike Blumenkrantz 2014-08-04 12:58:49 -04:00 committed by Chris Michael
parent 5448f0a1ac
commit 3b649534c9
26 changed files with 676 additions and 653 deletions

View File

@ -385,7 +385,7 @@ src/bin/e_comp_wl_input.c \
src/bin/e_comp_wl.c src/bin/e_comp_wl.c
endif endif
src_bin_enlightenment_CPPFLAGS = $(E_CPPFLAGS) -DEFL_BETA_API_SUPPORT -DEFL_EO_API_SUPPORT -DE_LOGGING=1 @WAYLAND_CFLAGS@ @WAYLAND_EGL_CFLAGS@ @ECORE_X_CFLAGS@ -DNEED_X=1 src_bin_enlightenment_CPPFLAGS = $(E_CPPFLAGS) -DEFL_BETA_API_SUPPORT -DEFL_EO_API_SUPPORT -DE_LOGGING=1 @WAYLAND_CFLAGS@ @WAYLAND_EGL_CFLAGS@ @ECORE_X_CFLAGS@ -DNEED_X=1 -DNEED_WL
src_bin_enlightenment_SOURCES = \ src_bin_enlightenment_SOURCES = \
src/bin/e_main.c \ src/bin/e_main.c \
$(enlightenment_src) $(enlightenment_src)

View File

@ -257,8 +257,7 @@ struct E_Client
E_Direction shade_dir; E_Direction shade_dir;
E_Comp_Wl_Client_Data *wl_comp_data; E_Comp_Client_Data *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 Evas_Object *input_object; //for running wayland clients in X

View File

@ -1,4 +1,7 @@
#include "e.h" #include "e.h"
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
# include "e_comp_wl.h"
#endif
#define OVER_FLOW 1 #define OVER_FLOW 1
//#define SHAPE_DEBUG //#define SHAPE_DEBUG

View File

@ -1,15 +1,27 @@
#ifdef E_TYPEDEFS #ifdef E_TYPEDEFS
typedef struct _E_Comp E_Comp; typedef struct _E_Comp E_Comp;
typedef struct _E_Comp_X_Data E_Comp_X_Data;
typedef struct _E_Comp_Wl_Data E_Comp_Wl_Data; #ifdef E_COMP_WL
typedef struct _E_Comp_X_Client_Data E_Comp_X_Client_Data; typedef struct _E_Comp_Wl_Client_Data E_Comp_Client_Data;
typedef struct _E_Comp_Wl_Client_Data E_Comp_Wl_Client_Data; typedef struct _E_Comp_Wl_Data E_Comp_Data;
#endif
#ifdef E_COMP_X
typedef struct _E_Comp_X_Client_Data E_Comp_Client_Data;
typedef struct _E_Comp_X_Data E_Comp_Data;
#endif
#if !defined(E_COMP_WL) && !defined(E_COMP_X)
typedef struct _E_Comp_Data E_Comp_Data;
typedef struct _E_Comp_Client_Data E_Comp_Client_Data;
#endif
typedef struct _E_Comp_Demo_Style_Item E_Comp_Demo_Style_Item; typedef struct _E_Comp_Demo_Style_Item E_Comp_Demo_Style_Item;
#define E_COMP_TYPE (int) 0xE0b01003 # define E_COMP_TYPE (int) 0xE0b01003
#define E_LAYER_COUNT 19 # define E_LAYER_COUNT 19
#define E_CLIENT_LAYER_COUNT 11 # define E_CLIENT_LAYER_COUNT 11
typedef enum _E_Layer typedef enum _E_Layer
{ {
@ -35,8 +47,8 @@ typedef enum _E_Layer
} E_Layer; } E_Layer;
#else #else
#ifndef E_COMP_H # ifndef E_COMP_H
#define E_COMP_H # define E_COMP_H
# include "e_comp_cfdata.h" # include "e_comp_cfdata.h"
@ -58,8 +70,8 @@ struct _E_Comp
Eina_List *clients; Eina_List *clients;
unsigned int new_clients; unsigned int new_clients;
E_Comp_X_Data *x_comp_data; E_Comp_Data *x_comp_data;
E_Comp_Wl_Data *wl_comp_data; E_Comp_Data *wl_comp_data;
E_Pixmap_Type comp_type; //for determining X/Wayland/ E_Pixmap_Type comp_type; //for determining X/Wayland/

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
#ifdef E_TYPEDEFS #ifdef E_TYPEDEFS
#else #else
# ifndef E_COMP_WL_H # ifndef E_COMP_WL_H
# define E_COMP_WL_H # define E_COMP_WL_H
@ -37,6 +38,57 @@
typedef struct _E_Comp_Wl_Buffer E_Comp_Wl_Buffer; typedef struct _E_Comp_Wl_Buffer E_Comp_Wl_Buffer;
typedef struct _E_Comp_Wl_Buffer_Ref E_Comp_Wl_Buffer_Ref; typedef struct _E_Comp_Wl_Buffer_Ref E_Comp_Wl_Buffer_Ref;
typedef struct _E_Comp_Wl_Subsurf E_Comp_Wl_Subsurf; typedef struct _E_Comp_Wl_Subsurf E_Comp_Wl_Subsurf;
typedef struct _E_Comp_Wl_Client_Data E_Comp_Wl_Client_Data;
typedef struct _E_Comp_Wl_Data E_Comp_Wl_Data;
struct _E_Comp_Wl_Buffer
{
struct wl_resource *resource;
struct wl_signal destroy_signal;
struct wl_listener destroy_listener;
union
{
struct wl_shm_buffer *shm_buffer;
void *legacy_buffer;
};
int32_t w, h;
uint32_t busy;
};
struct _E_Comp_Wl_Buffer_Ref
{
E_Comp_Wl_Buffer *buffer;
struct wl_listener destroy_listener;
};
struct _E_Comp_Wl_Subsurf
{
struct wl_resource *resource;
E_Client *parent;
struct
{
int x, y;
Eina_Bool set;
} position;
struct
{
int x, y;
Eina_Bool has_data;
Eina_Bool new_attach;
E_Comp_Wl_Buffer_Ref buffer_ref;
Eina_Tiler *damage;
Eina_Tiler *opaque;
Eina_Tiler *input;
} cached;
Eina_Bool synchronized;
};
struct _E_Comp_Wl_Data struct _E_Comp_Wl_Data
{ {
@ -151,55 +203,6 @@ struct _E_Comp_Wl_Data
Eina_Bool restack : 1; Eina_Bool restack : 1;
}; };
struct _E_Comp_Wl_Buffer
{
struct wl_resource *resource;
struct wl_signal destroy_signal;
struct wl_listener destroy_listener;
union
{
struct wl_shm_buffer *shm_buffer;
void *legacy_buffer;
};
int32_t w, h;
uint32_t busy;
};
struct _E_Comp_Wl_Buffer_Ref
{
E_Comp_Wl_Buffer *buffer;
struct wl_listener destroy_listener;
};
struct _E_Comp_Wl_Subsurf
{
struct wl_resource *resource;
E_Client *parent;
struct
{
int x, y;
Eina_Bool set;
} position;
struct
{
int x, y;
Eina_Bool has_data;
Eina_Bool new_attach;
E_Comp_Wl_Buffer_Ref buffer_ref;
Eina_Tiler *damage;
Eina_Tiler *opaque;
Eina_Tiler *input;
} cached;
Eina_Bool synchronized;
};
struct _E_Comp_Wl_Client_Data struct _E_Comp_Wl_Client_Data
{ {
Ecore_Timer *first_draw_tmr; Ecore_Timer *first_draw_tmr;

View File

@ -1,6 +1,5 @@
#define E_COMP_WL
#include "e.h" #include "e.h"
#include "e_comp_wl.h"
#include "e_comp_wl_data.h"
static struct wl_resource * static struct wl_resource *
_e_comp_wl_data_find_for_client(Eina_List *list, struct wl_client *client) _e_comp_wl_data_find_for_client(Eina_List *list, struct wl_client *client)
@ -153,14 +152,14 @@ static const struct wl_data_source_interface _e_data_source_interface =
static void static void
_e_comp_wl_data_device_destroy_selection_data_source(struct wl_listener *listener, void *data) _e_comp_wl_data_device_destroy_selection_data_source(struct wl_listener *listener, void *data)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Comp_Wl_Data_Source *source; E_Comp_Wl_Data_Source *source;
struct wl_resource *data_device_res, *focus = NULL; struct wl_resource *data_device_res, *focus = NULL;
if (!(source = (E_Comp_Wl_Data_Source*)data)) if (!(source = (E_Comp_Wl_Data_Source*)data))
return; return;
if (!(cdata = container_of(listener, E_Comp_Wl_Data, if (!(cdata = container_of(listener, E_Comp_Data,
selection.data_source_listener))) selection.data_source_listener)))
return; return;
@ -216,7 +215,7 @@ _e_comp_wl_data_device_data_offer_create(E_Comp_Wl_Data_Source *source, struct w
} }
static void static void
_e_comp_wl_data_device_selection_set(E_Comp_Wl_Data *cdata, E_Comp_Wl_Data_Source *source, uint32_t serial) _e_comp_wl_data_device_selection_set(E_Comp_Data *cdata, E_Comp_Wl_Data_Source *source, uint32_t serial)
{ {
E_Comp_Wl_Data_Source *sel_source; E_Comp_Wl_Data_Source *sel_source;
struct wl_resource *offer_res, *data_device_res, *focus = NULL; struct wl_resource *offer_res, *data_device_res, *focus = NULL;
@ -289,7 +288,7 @@ _e_comp_wl_data_device_cb_drag_start(struct wl_client *client EINA_UNUSED, struc
static void static void
_e_comp_wl_data_device_cb_selection_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource EINA_UNUSED, struct wl_resource *source_resource, uint32_t serial) _e_comp_wl_data_device_cb_selection_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource EINA_UNUSED, struct wl_resource *source_resource, uint32_t serial)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Comp_Wl_Data_Source *source; E_Comp_Wl_Data_Source *source;
if (!source_resource) return; if (!source_resource) return;
@ -308,7 +307,7 @@ static const struct wl_data_device_interface _e_data_device_interface =
static void static void
_e_comp_wl_data_device_cb_unbind(struct wl_resource *resource) _e_comp_wl_data_device_cb_unbind(struct wl_resource *resource)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
if(!(cdata = wl_resource_get_user_data(resource))) if(!(cdata = wl_resource_get_user_data(resource)))
return; return;
@ -352,7 +351,7 @@ _e_comp_wl_data_manager_cb_source_create(struct wl_client *client EINA_UNUSED, s
static void static void
_e_comp_wl_data_manager_cb_device_get(struct wl_client *client, struct wl_resource *manager_resource, uint32_t id, struct wl_resource *seat_resource) _e_comp_wl_data_manager_cb_device_get(struct wl_client *client, struct wl_resource *manager_resource, uint32_t id, struct wl_resource *seat_resource)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
DBG("Comp_Wl_Data: Get Data Device"); DBG("Comp_Wl_Data: Get Data Device");
@ -384,7 +383,7 @@ static const struct wl_data_device_manager_interface _e_manager_interface =
/* static void */ /* static void */
/* _e_comp_wl_data_cb_unbind_manager(struct wl_resource *resource) */ /* _e_comp_wl_data_cb_unbind_manager(struct wl_resource *resource) */
/* { */ /* { */
/* E_Comp_Wl_Data *cdata; */ /* E_Comp_Data *cdata; */
/* DBG("Comp_Wl_Data: Unbind Manager"); */ /* DBG("Comp_Wl_Data: Unbind Manager"); */
@ -396,7 +395,7 @@ static const struct wl_data_device_manager_interface _e_manager_interface =
static void 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_wl_data_cb_bind_manager(struct wl_client *client, void *data, uint32_t version EINA_UNUSED, uint32_t id)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
if (!(cdata = data)) return; if (!(cdata = data)) return;
@ -486,13 +485,12 @@ _e_comp_wl_clipboard_offer_create(E_Comp_Wl_Clipboard_Source* source, int fd)
static Eina_Bool static Eina_Bool
_e_comp_wl_clipboard_source_save(void *data, Ecore_Fd_Handler *handler) _e_comp_wl_clipboard_source_save(void *data, Ecore_Fd_Handler *handler)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Comp_Wl_Clipboard_Source *source; E_Comp_Wl_Clipboard_Source *source;
char *p; char *p;
int len, size; int len, size;
if (!(cdata = (E_Comp_Wl_Data*)data)) if (!(cdata = data)) return ECORE_CALLBACK_CANCEL;
return ECORE_CALLBACK_CANCEL;
if (!(source = (E_Comp_Wl_Clipboard_Source*)cdata->clipboard.source)) if (!(source = (E_Comp_Wl_Clipboard_Source*)cdata->clipboard.source))
return ECORE_CALLBACK_CANCEL; return ECORE_CALLBACK_CANCEL;
@ -555,7 +553,7 @@ _e_comp_wl_clipboard_source_cancelled_send(E_Comp_Wl_Data_Source *source EINA_UN
} }
static E_Comp_Wl_Clipboard_Source* static E_Comp_Wl_Clipboard_Source*
_e_comp_wl_clipboard_source_create(E_Comp_Wl_Data *cdata, const char *mime_type, uint32_t serial, int fd) _e_comp_wl_clipboard_source_create(E_Comp_Data *cdata, const char *mime_type, uint32_t serial, int fd)
{ {
E_Comp_Wl_Clipboard_Source *source; E_Comp_Wl_Clipboard_Source *source;
@ -591,13 +589,13 @@ _e_comp_wl_clipboard_source_create(E_Comp_Wl_Data *cdata, const char *mime_type,
static void static void
_e_comp_wl_clipboard_selection_set(struct wl_listener *listener EINA_UNUSED, void *data) _e_comp_wl_clipboard_selection_set(struct wl_listener *listener EINA_UNUSED, void *data)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Comp_Wl_Data_Source *sel_source; E_Comp_Wl_Data_Source *sel_source;
E_Comp_Wl_Clipboard_Source *clip_source; E_Comp_Wl_Clipboard_Source *clip_source;
int p[2]; int p[2];
char *mime_type; char *mime_type;
if (!(cdata = (E_Comp_Wl_Data*)data)) return; if (!(cdata = data)) return;
sel_source = (E_Comp_Wl_Data_Source*) cdata->selection.data_source; sel_source = (E_Comp_Wl_Data_Source*) cdata->selection.data_source;
clip_source = (E_Comp_Wl_Clipboard_Source*) cdata->clipboard.source; clip_source = (E_Comp_Wl_Clipboard_Source*) cdata->clipboard.source;
@ -636,7 +634,7 @@ _e_comp_wl_clipboard_selection_set(struct wl_listener *listener EINA_UNUSED, voi
} }
static void static void
_e_comp_wl_clipboard_destroy(E_Comp_Wl_Data *cdata) _e_comp_wl_clipboard_destroy(E_Comp_Data *cdata)
{ {
if (!cdata) return; if (!cdata) return;
@ -644,7 +642,7 @@ _e_comp_wl_clipboard_destroy(E_Comp_Wl_Data *cdata)
} }
static void static void
_e_comp_wl_clipboard_create(E_Comp_Wl_Data *cdata) _e_comp_wl_clipboard_create(E_Comp_Data *cdata)
{ {
if (!cdata) return; if (!cdata) return;
@ -653,7 +651,7 @@ _e_comp_wl_clipboard_create(E_Comp_Wl_Data *cdata)
} }
EINTERN void EINTERN void
e_comp_wl_data_device_keyboard_focus_set(E_Comp_Wl_Data *cdata) e_comp_wl_data_device_keyboard_focus_set(E_Comp_Data *cdata)
{ {
struct wl_resource *data_device_res, *offer_res, *focus; struct wl_resource *data_device_res, *offer_res, *focus;
E_Comp_Wl_Data_Source *source; E_Comp_Wl_Data_Source *source;
@ -678,7 +676,7 @@ e_comp_wl_data_device_keyboard_focus_set(E_Comp_Wl_Data *cdata)
} }
EINTERN Eina_Bool EINTERN Eina_Bool
e_comp_wl_data_manager_init(E_Comp_Wl_Data *cdata) e_comp_wl_data_manager_init(E_Comp_Data *cdata)
{ {
/* check for valid compositor data */ /* check for valid compositor data */
if (!cdata) return EINA_FALSE; if (!cdata) return EINA_FALSE;
@ -702,7 +700,7 @@ e_comp_wl_data_manager_init(E_Comp_Wl_Data *cdata)
} }
EINTERN void EINTERN void
e_comp_wl_data_manager_shutdown(E_Comp_Wl_Data *cdata EINA_UNUSED) e_comp_wl_data_manager_shutdown(E_Comp_Data *cdata)
{ {
/* destroy the global manager resource */ /* 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,13 +3,16 @@
# ifndef E_COMP_WL_DATA_H # ifndef E_COMP_WL_DATA_H
# define E_COMP_WL_DATA_H # define E_COMP_WL_DATA_H
# undef NEED_X
# include "e_comp_wl.h"
# define CLIPBOARD_CHUNK 1024
typedef struct _E_Comp_Wl_Data_Source E_Comp_Wl_Data_Source; typedef struct _E_Comp_Wl_Data_Source E_Comp_Wl_Data_Source;
typedef struct _E_Comp_Wl_Data_Offer E_Comp_Wl_Data_Offer; typedef struct _E_Comp_Wl_Data_Offer E_Comp_Wl_Data_Offer;
typedef struct _E_Comp_Wl_Clipboard_Source E_Comp_Wl_Clipboard_Source; typedef struct _E_Comp_Wl_Clipboard_Source E_Comp_Wl_Clipboard_Source;
typedef struct _E_Comp_Wl_Clipboard_Offer E_Comp_Wl_Clipboard_Offer; typedef struct _E_Comp_Wl_Clipboard_Offer E_Comp_Wl_Clipboard_Offer;
#define CLIPBOARD_CHUNK 1024
struct _E_Comp_Wl_Data_Source struct _E_Comp_Wl_Data_Source
{ {
struct wl_resource *resource; //resource of wl_data_source struct wl_resource *resource; //resource of wl_data_source
@ -48,9 +51,9 @@ struct _E_Comp_Wl_Clipboard_Offer
size_t offset; size_t offset;
}; };
EINTERN void e_comp_wl_data_device_keyboard_focus_set(E_Comp_Wl_Data *cdata); EINTERN void e_comp_wl_data_device_keyboard_focus_set(E_Comp_Data *cdata);
EINTERN Eina_Bool e_comp_wl_data_manager_init(E_Comp_Wl_Data *cdata); EINTERN Eina_Bool e_comp_wl_data_manager_init(E_Comp_Data *cdata);
EINTERN void e_comp_wl_data_manager_shutdown(E_Comp_Wl_Data *cdata); EINTERN void e_comp_wl_data_manager_shutdown(E_Comp_Data *cdata);
# endif # endif
#endif #endif

View File

@ -1,10 +1,9 @@
#define E_COMP_WL
#include "e.h" #include "e.h"
#include "e_comp_wl.h"
#include "e_comp_wl_input.h"
#include <sys/mman.h> #include <sys/mman.h>
static void static void
_e_comp_wl_input_update_seat_caps(E_Comp_Wl_Data *cdata) _e_comp_wl_input_update_seat_caps(E_Comp_Data *cdata)
{ {
Eina_List *l; Eina_List *l;
struct wl_resource *res; struct wl_resource *res;
@ -32,7 +31,7 @@ _e_comp_wl_input_cb_resource_destroy(struct wl_client *client EINA_UNUSED, struc
static void static void
_e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource EINA_UNUSED, uint32_t serial EINA_UNUSED, struct wl_resource *surface_resource EINA_UNUSED, int32_t x EINA_UNUSED, int32_t y EINA_UNUSED) _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource EINA_UNUSED, uint32_t serial EINA_UNUSED, struct wl_resource *surface_resource EINA_UNUSED, int32_t x EINA_UNUSED, int32_t y EINA_UNUSED)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
/* get compositor data */ /* get compositor data */
if (!(cdata = wl_resource_get_user_data(resource))) return; if (!(cdata = wl_resource_get_user_data(resource))) return;
@ -52,7 +51,7 @@ static const struct wl_keyboard_interface _e_keyboard_interface =
static void static void
_e_comp_wl_input_cb_pointer_unbind(struct wl_resource *resource) _e_comp_wl_input_cb_pointer_unbind(struct wl_resource *resource)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
/* get compositor data */ /* get compositor data */
if (!(cdata = wl_resource_get_user_data(resource))) return; if (!(cdata = wl_resource_get_user_data(resource))) return;
@ -63,7 +62,7 @@ _e_comp_wl_input_cb_pointer_unbind(struct wl_resource *resource)
static void static void
_e_comp_wl_input_cb_pointer_get(struct wl_client *client, struct wl_resource *resource, uint32_t id) _e_comp_wl_input_cb_pointer_get(struct wl_client *client, struct wl_resource *resource, uint32_t id)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
/* get compositor data */ /* get compositor data */
@ -87,7 +86,7 @@ _e_comp_wl_input_cb_pointer_get(struct wl_client *client, struct wl_resource *re
static void static void
_e_comp_wl_input_cb_keyboard_unbind(struct wl_resource *resource) _e_comp_wl_input_cb_keyboard_unbind(struct wl_resource *resource)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
/* get compositor data */ /* get compositor data */
if (!(cdata = wl_resource_get_user_data(resource))) return; if (!(cdata = wl_resource_get_user_data(resource))) return;
@ -98,7 +97,7 @@ _e_comp_wl_input_cb_keyboard_unbind(struct wl_resource *resource)
static void static void
_e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *resource, uint32_t id) _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *resource, uint32_t id)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
/* get compositor data */ /* get compositor data */
@ -126,7 +125,7 @@ _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *r
static void 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_wl_input_cb_touch_get(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t id EINA_UNUSED)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
/* DBG("Input Touch Get"); */ /* DBG("Input Touch Get"); */
@ -146,7 +145,7 @@ static const struct wl_seat_interface _e_seat_interface =
static void static void
_e_comp_wl_input_cb_unbind_seat(struct wl_resource *resource) _e_comp_wl_input_cb_unbind_seat(struct wl_resource *resource)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
if (!(cdata = wl_resource_get_user_data(resource))) return; if (!(cdata = wl_resource_get_user_data(resource))) return;
@ -156,7 +155,7 @@ _e_comp_wl_input_cb_unbind_seat(struct wl_resource *resource)
static void static void
_e_comp_wl_input_cb_bind_seat(struct wl_client *client, void *data, uint32_t version, uint32_t id) _e_comp_wl_input_cb_bind_seat(struct wl_client *client, void *data, uint32_t version, uint32_t id)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
if (!(cdata = data)) return; if (!(cdata = data)) return;
@ -218,7 +217,7 @@ _e_comp_wl_input_keymap_fd_get(off_t size)
} }
static void static void
_e_comp_wl_input_keymap_update(E_Comp_Wl_Data *cdata, struct xkb_keymap *keymap) _e_comp_wl_input_keymap_update(E_Comp_Data *cdata, struct xkb_keymap *keymap)
{ {
char *tmp; char *tmp;
xkb_mod_mask_t latched, locked; xkb_mod_mask_t latched, locked;
@ -303,7 +302,7 @@ _e_comp_wl_input_keymap_update(E_Comp_Wl_Data *cdata, struct xkb_keymap *keymap)
} }
EINTERN Eina_Bool EINTERN Eina_Bool
e_comp_wl_input_init(E_Comp_Wl_Data *cdata) e_comp_wl_input_init(E_Comp_Data *cdata)
{ {
/* check for valid compositor data */ /* check for valid compositor data */
if (!cdata) return EINA_FALSE; if (!cdata) return EINA_FALSE;
@ -327,7 +326,7 @@ e_comp_wl_input_init(E_Comp_Wl_Data *cdata)
} }
EINTERN void EINTERN void
e_comp_wl_input_shutdown(E_Comp_Wl_Data *cdata) e_comp_wl_input_shutdown(E_Comp_Data *cdata)
{ {
/* Eina_List *l; */ /* Eina_List *l; */
struct wl_resource *res; struct wl_resource *res;
@ -368,7 +367,7 @@ e_comp_wl_input_keyboard_check(struct wl_resource *res)
} }
EINTERN void EINTERN void
e_comp_wl_input_keyboard_modifiers_update(E_Comp_Wl_Data *cdata) e_comp_wl_input_keyboard_modifiers_update(E_Comp_Data *cdata)
{ {
xkb_mod_mask_t depressed, latched, locked; xkb_mod_mask_t depressed, latched, locked;
xkb_layout_index_t group; xkb_layout_index_t group;
@ -404,7 +403,7 @@ e_comp_wl_input_keyboard_modifiers_update(E_Comp_Wl_Data *cdata)
} }
EINTERN void EINTERN void
e_comp_wl_input_keyboard_state_update(E_Comp_Wl_Data *cdata, uint32_t keycode, Eina_Bool pressed) e_comp_wl_input_keyboard_state_update(E_Comp_Data *cdata, uint32_t keycode, Eina_Bool pressed)
{ {
enum xkb_key_direction dir; enum xkb_key_direction dir;
@ -419,7 +418,7 @@ e_comp_wl_input_keyboard_state_update(E_Comp_Wl_Data *cdata, uint32_t keycode, E
} }
EAPI void EAPI void
e_comp_wl_input_pointer_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled) e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
{ {
/* check for valid compositor data */ /* check for valid compositor data */
if (!cdata) return; if (!cdata) return;
@ -429,7 +428,7 @@ e_comp_wl_input_pointer_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled)
} }
EAPI void EAPI void
e_comp_wl_input_keyboard_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled) e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
{ {
/* check for valid compositor data */ /* check for valid compositor data */
if (!cdata) return; if (!cdata) return;
@ -439,7 +438,7 @@ e_comp_wl_input_keyboard_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled)
} }
EAPI void EAPI void
e_comp_wl_input_keymap_set(E_Comp_Wl_Data *cdata, const char *rules, const char *model, const char *layout) e_comp_wl_input_keymap_set(E_Comp_Data *cdata, const char *rules, const char *model, const char *layout)
{ {
struct xkb_keymap *keymap; struct xkb_keymap *keymap;
struct xkb_rule_names names; struct xkb_rule_names names;

View File

@ -3,18 +3,18 @@
# ifndef E_COMP_WL_INPUT_H # ifndef E_COMP_WL_INPUT_H
# define E_COMP_WL_INPUT_H # define E_COMP_WL_INPUT_H
EINTERN Eina_Bool e_comp_wl_input_init(E_Comp_Wl_Data *cdata); EINTERN Eina_Bool e_comp_wl_input_init(E_Comp_Data *cdata);
EINTERN void e_comp_wl_input_shutdown(E_Comp_Wl_Data *cdata); EINTERN void e_comp_wl_input_shutdown(E_Comp_Data *cdata);
EINTERN Eina_Bool e_comp_wl_input_pointer_check(struct wl_resource *res); 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 Eina_Bool e_comp_wl_input_keyboard_check(struct wl_resource *res);
EINTERN void e_comp_wl_input_keyboard_modifiers_update(E_Comp_Wl_Data *cdata); EINTERN void e_comp_wl_input_keyboard_modifiers_update(E_Comp_Data *cdata);
EINTERN void e_comp_wl_input_keyboard_state_update(E_Comp_Wl_Data *cdata, uint32_t keycode, Eina_Bool pressed); EINTERN void e_comp_wl_input_keyboard_state_update(E_Comp_Data *cdata, uint32_t keycode, Eina_Bool pressed);
EAPI void e_comp_wl_input_pointer_enabled_set(E_Comp_Wl_Data *cdata, Eina_Bool enabled); 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_Wl_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_keymap_set(E_Comp_Wl_Data *cdata, const char *rules, const char *model, const char *layout); EAPI void e_comp_wl_input_keymap_set(E_Comp_Data *cdata, const char *rules, const char *model, const char *layout);
# endif # endif
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,10 @@
#ifdef E_TYPEDEFS #ifdef E_TYPEDEFS
# include <Ecore_X.h> # include <Ecore_X.h>
# include "e_atoms.h" # include "e_atoms.h"
# include "e_hints.h" # include "e_hints.h"
# include "e_randr.h" # include "e_randr.h"
typedef struct _E_Comp_X_Client_Data E_Comp_X_Client_Data;
#else #else
# ifndef E_COMP_X_H # ifndef E_COMP_X_H

View File

@ -721,7 +721,9 @@ e_hints_window_state_update(E_Client *ec, int state, int action)
{ {
case ECORE_X_WINDOW_STATE_ICONIFIED: case ECORE_X_WINDOW_STATE_ICONIFIED:
if (action != ECORE_X_WINDOW_STATE_ACTION_ADD) return; if (action != ECORE_X_WINDOW_STATE_ACTION_ADD) return;
#ifndef HAVE_WAYLAND_ONLY
if (ec->icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) return; if (ec->icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) return;
#endif
if (ec->lock_client_iconify) return; if (ec->lock_client_iconify) return;
e_client_iconify(ec); e_client_iconify(ec);
break; break;

View File

@ -8,8 +8,8 @@
#include "e_zone.h" #include "e_zone.h"
#include "e_desk.h" #include "e_desk.h"
#include "e_auth.h" #include "e_auth.h"
#ifndef HAVE_WAYLAND_ONLY #ifdef NEED_X
# include "e_comp_x.h" # include "e_comp_x.h"
#endif #endif
#include "e_pixmap.h" #include "e_pixmap.h"
#include "e_comp_object.h" #include "e_comp_object.h"
@ -158,5 +158,7 @@
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY) #if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
# include "e_comp_wl.h" # include "e_comp_wl.h"
# include "e_comp_wl_data.h"
# include "e_comp_wl_input.h"
# include "e_uuid_store.h" # include "e_uuid_store.h"
#endif #endif

View File

@ -145,7 +145,7 @@ _create_data(E_Dialog *cfd, E_Client *ec)
cfdata->client->icccm.max_aspect); cfdata->client->icccm.max_aspect);
cfdata->icccm.aspect = strdup(buf); cfdata->icccm.aspect = strdup(buf);
} }
#ifdef E_COMP_X_H #ifndef HAVE_WAYLAND_ONLY
if (cfdata->client->icccm.initial_state != ECORE_X_WINDOW_STATE_HINT_NONE) if (cfdata->client->icccm.initial_state != ECORE_X_WINDOW_STATE_HINT_NONE)
{ {
switch (cfdata->client->icccm.initial_state) switch (cfdata->client->icccm.initial_state)
@ -212,7 +212,7 @@ _create_data(E_Dialog *cfd, E_Client *ec)
(unsigned int)cfdata->client->icccm.client_leader); (unsigned int)cfdata->client->icccm.client_leader);
cfdata->icccm.client_leader = strdup(buf); cfdata->icccm.client_leader = strdup(buf);
} }
#ifdef E_COMP_X_H #ifndef HAVE_WAYLAND_ONLY
switch (cfdata->client->icccm.gravity) switch (cfdata->client->icccm.gravity)
{ {
case ECORE_X_GRAVITY_FORGET: case ECORE_X_GRAVITY_FORGET:

View File

@ -377,6 +377,7 @@ e_pixmap_refresh(E_Pixmap *cp)
{ {
uint32_t pixmap; uint32_t pixmap;
int pw, ph; int pw, ph;
E_Comp_X_Client_Data *cd = (E_Comp_X_Client_Data*)cp->client->comp_data;
pixmap = ecore_x_composite_name_window_pixmap_get(cp->parent ?: cp->win); pixmap = ecore_x_composite_name_window_pixmap_get(cp->parent ?: cp->win);
if (cp->client) if (cp->client)
@ -386,8 +387,8 @@ e_pixmap_refresh(E_Pixmap *cp)
if (cp->client->comp_data && if (cp->client->comp_data &&
cp->client->comp_data->pw && cp->client->comp_data->ph) cp->client->comp_data->pw && cp->client->comp_data->ph)
{ {
pw = cp->client->x_comp_data->pw; pw = cd->pw;
ph = cp->client->x_comp_data->ph; ph = cd->ph;
} }
else else
ecore_x_pixmap_geometry_get(pixmap, NULL, NULL, &pw, &ph); ecore_x_pixmap_geometry_get(pixmap, NULL, NULL, &pw, &ph);
@ -635,6 +636,7 @@ e_pixmap_image_refresh(E_Pixmap *cp)
cp->image = ecore_x_image_new(cp->w, cp->h, cp->visual, cp->client->depth); cp->image = ecore_x_image_new(cp->w, cp->h, cp->visual, cp->client->depth);
if (cp->image) if (cp->image)
cp->image_argb = ecore_x_image_is_argb32_get(cp->image); cp->image_argb = ecore_x_image_is_argb32_get(cp->image);
return !!cp->image;
#endif #endif
break; break;
case E_PIXMAP_TYPE_WL: case E_PIXMAP_TYPE_WL:
@ -646,7 +648,8 @@ e_pixmap_image_refresh(E_Pixmap *cp)
default: default:
break; break;
} }
return !!cp->image;
return EINA_FALSE;
} }
EAPI Eina_Bool EAPI Eina_Bool

View File

@ -8,7 +8,7 @@ accesspkgdir = $(MDIR)/access/$(MODULE_ARCH)
accesspkg_LTLIBRARIES = src/modules/access/module.la accesspkg_LTLIBRARIES = src/modules/access/module.la
src_modules_access_module_la_LIBADD = $(MOD_LIBS) src_modules_access_module_la_LIBADD = $(MOD_LIBS)
src_modules_access_module_la_CPPFLAGS = $(MOD_CPPFLAGS) src_modules_access_module_la_CPPFLAGS = $(MOD_CPPFLAGS) -DNEED_X
src_modules_access_module_la_LDFLAGS = $(MOD_LDFLAGS) src_modules_access_module_la_LDFLAGS = $(MOD_LDFLAGS)
src_modules_access_module_la_SOURCES = src/modules/access/e_mod_main.c \ src_modules_access_module_la_SOURCES = src/modules/access/e_mod_main.c \
src/modules/access/e_mod_main.h \ src/modules/access/e_mod_main.h \

View File

@ -9,7 +9,7 @@ contactpkgdir = $(MDIR)/contact/$(MODULE_ARCH)
contactpkg_LTLIBRARIES = src/modules/contact/module.la contactpkg_LTLIBRARIES = src/modules/contact/module.la
src_modules_contact_module_la_LIBADD = $(MOD_LIBS) src_modules_contact_module_la_LIBADD = $(MOD_LIBS)
src_modules_contact_module_la_CPPFLAGS = $(MOD_CPPFLAGS) src_modules_contact_module_la_CPPFLAGS = $(MOD_CPPFLAGS) -DNEED_X
src_modules_contact_module_la_LDFLAGS = $(MOD_LDFLAGS) src_modules_contact_module_la_LDFLAGS = $(MOD_LDFLAGS)
src_modules_contact_module_la_SOURCES = src/modules/contact/e_mod_main.c \ src_modules_contact_module_la_SOURCES = src/modules/contact/e_mod_main.c \
src/modules/contact/e_mod_main.h \ src/modules/contact/e_mod_main.h \

View File

@ -12,7 +12,7 @@ wl_desktop_shellpkgdir = $(MDIR)/wl_desktop_shell/$(MODULE_ARCH)
wl_desktop_shellpkg_LTLIBRARIES = src/modules/wl_desktop_shell/module.la wl_desktop_shellpkg_LTLIBRARIES = src/modules/wl_desktop_shell/module.la
src_modules_wl_desktop_shell_module_la_DEPENDENCIES = $(MDEPENDENCIES) src_modules_wl_desktop_shell_module_la_DEPENDENCIES = $(MDEPENDENCIES)
src_modules_wl_desktop_shell_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @WL_DESKTOP_SHELL_CFLAGS@ @WAYLAND_CFLAGS@ src_modules_wl_desktop_shell_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @WL_DESKTOP_SHELL_CFLAGS@ @WAYLAND_CFLAGS@ -DNEED_WL
src_modules_wl_desktop_shell_module_la_LIBADD = $(LIBS) @WL_DESKTOP_SHELL_LIBS@ @WAYLAND_LIBS@ src_modules_wl_desktop_shell_module_la_LIBADD = $(LIBS) @WL_DESKTOP_SHELL_LIBS@ @WAYLAND_LIBS@
src_modules_wl_desktop_shell_module_la_LDFLAGS = $(MOD_LDFLAGS) src_modules_wl_desktop_shell_module_la_LDFLAGS = $(MOD_LDFLAGS)

View File

@ -5,7 +5,7 @@ wl_fbpkgdir = $(MDIR)/wl_fb/$(MODULE_ARCH)
wl_fbpkg_LTLIBRARIES = src/modules/wl_fb/module.la wl_fbpkg_LTLIBRARIES = src/modules/wl_fb/module.la
src_modules_wl_fb_module_la_DEPENDENCIES = $(MDEPENDENCIES) src_modules_wl_fb_module_la_DEPENDENCIES = $(MDEPENDENCIES)
src_modules_wl_fb_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @WL_FB_CFLAGS@ @WAYLAND_CFLAGS@ -DNEED_X=1 src_modules_wl_fb_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @WL_FB_CFLAGS@ @WAYLAND_CFLAGS@
src_modules_wl_fb_module_la_LIBADD = $(LIBS) @WL_FB_LIBS@ @WAYLAND_LIBS@ src_modules_wl_fb_module_la_LIBADD = $(LIBS) @WL_FB_LIBS@ @WAYLAND_LIBS@
src_modules_wl_fb_module_la_LDFLAGS = $(MOD_LDFLAGS) src_modules_wl_fb_module_la_LDFLAGS = $(MOD_LDFLAGS)
src_modules_wl_fb_module_la_SOURCES = src/modules/wl_fb/e_mod_main.c src_modules_wl_fb_module_la_SOURCES = src/modules/wl_fb/e_mod_main.c

View File

@ -1,3 +1,4 @@
#define E_COMP_X
#include "e.h" #include "e.h"
#include "e_mod_main.h" #include "e_mod_main.h"
#define HISTORY_MAX 8 #define HISTORY_MAX 8

View File

@ -1,3 +1,5 @@
#define E_COMP_X
#include "e_mod_main.h" #include "e_mod_main.h"
static Eina_Bool _cb_event_add(void *data __UNUSED__, int type __UNUSED__, void *event); static Eina_Bool _cb_event_add(void *data __UNUSED__, int type __UNUSED__, void *event);
@ -178,10 +180,12 @@ _cb_hook_layout(E_Comp *comp)
{ {
if (e_client_util_ignored_get(ec)) continue; if (e_client_util_ignored_get(ec)) continue;
if (ec->focused) have_focused = EINA_TRUE; if (ec->focused) have_focused = EINA_TRUE;
#ifndef HAVE_WAYLAND_ONLY
if ((ec->focused) && if ((ec->focused) &&
(ec->vkbd.state > ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF)) (ec->vkbd.state > ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF))
want_kbd = EINA_TRUE; want_kbd = EINA_TRUE;
if (ec->vkbd.vkbd) kbd = ec; if (ec->vkbd.vkbd) kbd = ec;
#endif
} }
if ((have_focused) && (kbd_override)) want_kbd = EINA_TRUE; if ((have_focused) && (kbd_override)) want_kbd = EINA_TRUE;

View File

@ -1,10 +1,9 @@
#define E_COMP_WL
#include "e.h" #include "e.h"
#include "e_comp_wl.h"
#include "e_desktop_shell_protocol.h" #include "e_desktop_shell_protocol.h"
#define XDG_SERVER_VERSION 3 #define XDG_SERVER_VERSION 3
/* FIXME: Popup Windows !! */
static void static void
_e_shell_surface_parent_set(E_Client *ec, struct wl_resource *parent_resource) _e_shell_surface_parent_set(E_Client *ec, struct wl_resource *parent_resource)
{ {
@ -94,16 +93,16 @@ _e_shell_surface_cb_destroy(struct wl_resource *resource)
{ {
if (e_object_is_del(E_OBJECT(ec))) return; if (e_object_is_del(E_OBJECT(ec))) return;
if (ec->wl_comp_data) if (ec->comp_data)
{ {
if (ec->wl_comp_data->mapped) if (ec->comp_data->mapped)
{ {
if ((ec->wl_comp_data->shell.surface) && if ((ec->comp_data->shell.surface) &&
(ec->wl_comp_data->shell.unmap)) (ec->comp_data->shell.unmap))
ec->wl_comp_data->shell.unmap(ec->wl_comp_data->shell.surface); ec->comp_data->shell.unmap(ec->comp_data->shell.surface);
} }
ec->wl_comp_data->shell.surface = NULL; ec->comp_data->shell.surface = NULL;
} }
} }
} }
@ -122,7 +121,7 @@ static void
_e_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED) _e_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED)
{ {
E_Client *ec; E_Client *ec;
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Binding_Event_Mouse_Button ev; E_Binding_Event_Mouse_Button ev;
/* get the client for this resource */ /* get the client for this resource */
@ -173,7 +172,7 @@ static void
_e_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED, uint32_t edges) _e_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED, uint32_t edges)
{ {
E_Client *ec; E_Client *ec;
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Binding_Event_Mouse_Button ev; E_Binding_Event_Mouse_Button ev;
/* get the client for this resource */ /* get the client for this resource */
@ -254,7 +253,7 @@ _e_shell_surface_cb_toplevel_set(struct wl_client *client EINA_UNUSED, struct wl
ec->border.changed = ec->changes.border = !ec->borderless; ec->border.changed = ec->changes.border = !ec->borderless;
ec->changes.icon = !!ec->icccm.class; ec->changes.icon = !!ec->icccm.class;
ec->netwm.type = E_WINDOW_TYPE_NORMAL; ec->netwm.type = E_WINDOW_TYPE_NORMAL;
ec->wl_comp_data->set_win_type = EINA_TRUE; ec->comp_data->set_win_type = EINA_TRUE;
if ((!ec->lock_user_maximize) && (ec->maximized)) if ((!ec->lock_user_maximize) && (ec->maximized))
e_client_unmaximize(ec, E_MAXIMIZE_BOTH); e_client_unmaximize(ec, E_MAXIMIZE_BOTH);
if ((!ec->lock_user_fullscreen) && (ec->fullscreen)) if ((!ec->lock_user_fullscreen) && (ec->fullscreen))
@ -339,10 +338,10 @@ _e_shell_surface_cb_popup_set(struct wl_client *client EINA_UNUSED, struct wl_re
return; return;
} }
if (ec->wl_comp_data) if (ec->comp_data)
{ {
ec->wl_comp_data->popup.x = x; ec->comp_data->popup.x = x;
ec->wl_comp_data->popup.y = y; ec->comp_data->popup.y = y;
} }
ec->argb = EINA_TRUE; ec->argb = EINA_TRUE;
@ -352,7 +351,7 @@ _e_shell_surface_cb_popup_set(struct wl_client *client EINA_UNUSED, struct wl_re
ec->border.changed = ec->changes.border = !ec->borderless; ec->border.changed = ec->changes.border = !ec->borderless;
ec->changes.icon = !!ec->icccm.class; ec->changes.icon = !!ec->icccm.class;
ec->netwm.type = E_WINDOW_TYPE_POPUP_MENU; ec->netwm.type = E_WINDOW_TYPE_POPUP_MENU;
ec->wl_comp_data->set_win_type = EINA_TRUE; ec->comp_data->set_win_type = EINA_TRUE;
ec->layer = E_LAYER_CLIENT_POPUP; ec->layer = E_LAYER_CLIENT_POPUP;
/* set this client as a transient for parent */ /* set this client as a transient for parent */
@ -475,8 +474,8 @@ _e_shell_surface_configure(struct wl_resource *resource, Evas_Coord x, Evas_Coor
(ec->netwm.type == E_WINDOW_TYPE_POPUP_MENU) || (ec->netwm.type == E_WINDOW_TYPE_POPUP_MENU) ||
(ec->netwm.type == E_WINDOW_TYPE_DROPDOWN_MENU)) (ec->netwm.type == E_WINDOW_TYPE_DROPDOWN_MENU))
{ {
x = ec->parent->client.x + ec->wl_comp_data->popup.x; x = ec->parent->client.x + ec->comp_data->popup.x;
y = ec->parent->client.y + ec->wl_comp_data->popup.y; y = ec->parent->client.y + ec->comp_data->popup.y;
} }
} }
@ -518,7 +517,7 @@ _e_shell_surface_ping(struct wl_resource *resource)
} }
serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp); serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp);
wl_shell_surface_send_ping(ec->wl_comp_data->shell.surface, serial); wl_shell_surface_send_ping(ec->comp_data->shell.surface, serial);
} }
static void static void
@ -536,12 +535,12 @@ _e_shell_surface_map(struct wl_resource *resource)
} }
/* map this surface if needed */ /* map this surface if needed */
if ((!ec->wl_comp_data->mapped) && (e_pixmap_usable_get(ec->pixmap))) if ((!ec->comp_data->mapped) && (e_pixmap_usable_get(ec->pixmap)))
{ {
ec->visible = EINA_TRUE; ec->visible = EINA_TRUE;
evas_object_show(ec->frame); evas_object_show(ec->frame);
evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h); evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h);
ec->wl_comp_data->mapped = EINA_TRUE; ec->comp_data->mapped = EINA_TRUE;
} }
} }
@ -559,11 +558,11 @@ _e_shell_surface_unmap(struct wl_resource *resource)
return; return;
} }
if (ec->wl_comp_data->mapped) if (ec->comp_data->mapped)
{ {
ec->visible = EINA_FALSE; ec->visible = EINA_FALSE;
evas_object_hide(ec->frame); evas_object_hide(ec->frame);
ec->wl_comp_data->mapped = EINA_FALSE; ec->comp_data->mapped = EINA_FALSE;
} }
} }
@ -572,7 +571,7 @@ _e_shell_cb_shell_surface_get(struct wl_client *client, struct wl_resource *reso
{ {
E_Pixmap *ep; E_Pixmap *ep;
E_Client *ec; E_Client *ec;
E_Comp_Wl_Client_Data *cdata; E_Comp_Client_Data *cdata;
DBG("WL_SHELL: Surface Get %d", wl_resource_get_id(surface_resource)); DBG("WL_SHELL: Surface Get %d", wl_resource_get_id(surface_resource));
@ -607,7 +606,7 @@ _e_shell_cb_shell_surface_get(struct wl_client *client, struct wl_resource *reso
} }
/* get the client data */ /* get the client data */
if (!(cdata = ec->wl_comp_data)) if (!(cdata = ec->comp_data))
{ {
wl_resource_post_error(surface_resource, wl_resource_post_error(surface_resource,
WL_DISPLAY_ERROR_INVALID_OBJECT, WL_DISPLAY_ERROR_INVALID_OBJECT,
@ -655,8 +654,8 @@ _e_xdg_shell_surface_cb_destroy(struct wl_client *client EINA_UNUSED, struct wl_
{ {
/* eina_stringshare_del(ec->icccm.title); */ /* eina_stringshare_del(ec->icccm.title); */
/* eina_stringshare_del(ec->icccm.class); */ /* eina_stringshare_del(ec->icccm.class); */
wl_resource_destroy(ec->wl_comp_data->shell.surface); wl_resource_destroy(ec->comp_data->shell.surface);
ec->wl_comp_data->shell.surface = NULL; ec->comp_data->shell.surface = NULL;
} }
} }
@ -692,7 +691,7 @@ _e_xdg_shell_surface_cb_transient_for_set(struct wl_client *client EINA_UNUSED,
ec->icccm.transient_for = pwin; ec->icccm.transient_for = pwin;
ec->netwm.type = E_WINDOW_TYPE_DIALOG; ec->netwm.type = E_WINDOW_TYPE_DIALOG;
ec->wl_comp_data->set_win_type = EINA_TRUE; ec->comp_data->set_win_type = EINA_TRUE;
/* set this client as a transient for parent */ /* set this client as a transient for parent */
_e_shell_surface_parent_set(ec, parent_resource); _e_shell_surface_parent_set(ec, parent_resource);
@ -717,18 +716,18 @@ _e_xdg_shell_surface_cb_margin_set(struct wl_client *client EINA_UNUSED, struct
/* return; */ /* return; */
/* } */ /* } */
/* if (!ec->wl_comp_data) return; */ /* if (!ec->comp_data) return; */
/* if (eina_rectangle_is_empty(ec->wl_comp_data->opaque)) return; */ /* if (eina_rectangle_is_empty(ec->comp_data->opaque)) return; */
/* diff = (ec->wl_comp_data->opaque->x - l); */ /* diff = (ec->comp_data->opaque->x - l); */
/* ec->wl_comp_data->opaque->x = l; */ /* ec->comp_data->opaque->x = l; */
/* ec->wl_comp_data->opaque->y = t; */ /* ec->comp_data->opaque->y = t; */
/* ec->wl_comp_data->opaque->w = ec->wl_comp_data->opaque->w + (diff * 2); */ /* ec->comp_data->opaque->w = ec->comp_data->opaque->w + (diff * 2); */
/* ec->wl_comp_data->opaque->h = ec->wl_comp_data->opaque->h + (diff * 2); */ /* ec->comp_data->opaque->h = ec->comp_data->opaque->h + (diff * 2); */
/* EINA_RECTANGLE_SET(ec->wl_comp_data->opaque, */ /* EINA_RECTANGLE_SET(ec->comp_data->opaque, */
/* l, t, pw, ph); */ /* l, t, pw, ph); */
} }
@ -781,7 +780,7 @@ static void
_e_xdg_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED) _e_xdg_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED)
{ {
E_Client *ec; E_Client *ec;
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Binding_Event_Mouse_Button ev; E_Binding_Event_Mouse_Button ev;
/* get the client for this resource */ /* get the client for this resource */
@ -832,7 +831,7 @@ static void
_e_xdg_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED, uint32_t edges) _e_xdg_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource, uint32_t serial EINA_UNUSED, uint32_t edges)
{ {
E_Client *ec; E_Client *ec;
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Binding_Event_Mouse_Button ev; E_Binding_Event_Mouse_Button ev;
/* DBG("XDG_SHELL: Surface Resize"); */ /* DBG("XDG_SHELL: Surface Resize"); */
@ -939,7 +938,7 @@ _e_xdg_shell_surface_cb_state_change_request(struct wl_client *client EINA_UNUSE
return; return;
} }
xdg_surface_send_state_change(ec->wl_comp_data->shell.surface, xdg_surface_send_state_change(ec->comp_data->shell.surface,
state, value, serial); state, value, serial);
} }
@ -982,7 +981,7 @@ _e_xdg_shell_surface_cb_state_change_acknowledge(struct wl_client *client EINA_U
return; return;
} }
xdg_surface_send_configure(ec->wl_comp_data->shell.surface, xdg_surface_send_configure(ec->comp_data->shell.surface,
ec->client.w, ec->client.h); ec->client.w, ec->client.h);
} }
@ -1049,8 +1048,8 @@ _e_xdg_shell_surface_configure(struct wl_resource *resource, Evas_Coord x, Evas_
(ec->netwm.type == E_WINDOW_TYPE_POPUP_MENU) || (ec->netwm.type == E_WINDOW_TYPE_POPUP_MENU) ||
(ec->netwm.type == E_WINDOW_TYPE_DROPDOWN_MENU)) (ec->netwm.type == E_WINDOW_TYPE_DROPDOWN_MENU))
{ {
x = ec->parent->client.x + ec->wl_comp_data->popup.x; x = ec->parent->client.x + ec->comp_data->popup.x;
y = ec->parent->client.y + ec->wl_comp_data->popup.y; y = ec->parent->client.y + ec->comp_data->popup.y;
} }
} }
@ -1112,7 +1111,7 @@ _e_xdg_shell_surface_activate(struct wl_resource *resource)
} }
if (ec->netwm.type != E_WINDOW_TYPE_POPUP_MENU) if (ec->netwm.type != E_WINDOW_TYPE_POPUP_MENU)
xdg_surface_send_activated(ec->wl_comp_data->shell.surface); xdg_surface_send_activated(ec->comp_data->shell.surface);
} }
static void static void
@ -1131,7 +1130,7 @@ _e_xdg_shell_surface_deactivate(struct wl_resource *resource)
/* DBG("\tSend XDG Deactivate"); */ /* DBG("\tSend XDG Deactivate"); */
if (ec->netwm.type != E_WINDOW_TYPE_POPUP_MENU) if (ec->netwm.type != E_WINDOW_TYPE_POPUP_MENU)
xdg_surface_send_deactivated(ec->wl_comp_data->shell.surface); xdg_surface_send_deactivated(ec->comp_data->shell.surface);
} }
static void static void
@ -1150,13 +1149,13 @@ _e_xdg_shell_surface_map(struct wl_resource *resource)
return; return;
} }
if ((!ec->wl_comp_data->mapped) && (e_pixmap_usable_get(ec->pixmap))) if ((!ec->comp_data->mapped) && (e_pixmap_usable_get(ec->pixmap)))
{ {
/* map this surface if needed */ /* map this surface if needed */
ec->visible = EINA_TRUE; ec->visible = EINA_TRUE;
evas_object_show(ec->frame); evas_object_show(ec->frame);
evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h); evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h);
ec->wl_comp_data->mapped = EINA_TRUE; ec->comp_data->mapped = EINA_TRUE;
/* FIXME: sometimes popup surfaces Do Not raise above their /* FIXME: sometimes popup surfaces Do Not raise above their
* respective parents... */ * respective parents... */
@ -1181,11 +1180,11 @@ _e_xdg_shell_surface_unmap(struct wl_resource *resource)
return; return;
} }
if (ec->wl_comp_data->mapped) if (ec->comp_data->mapped)
{ {
ec->visible = EINA_FALSE; ec->visible = EINA_FALSE;
evas_object_hide(ec->frame); evas_object_hide(ec->frame);
ec->wl_comp_data->mapped = EINA_FALSE; ec->comp_data->mapped = EINA_FALSE;
} }
} }
@ -1194,7 +1193,7 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour
{ {
E_Pixmap *ep; E_Pixmap *ep;
E_Client *ec; E_Client *ec;
E_Comp_Wl_Client_Data *cdata; E_Comp_Client_Data *cdata;
DBG("XDG_SHELL: Surface Get %d", wl_resource_get_id(surface_resource)); DBG("XDG_SHELL: Surface Get %d", wl_resource_get_id(surface_resource));
@ -1230,7 +1229,7 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour
} }
/* get the client data */ /* get the client data */
if (!(cdata = ec->wl_comp_data)) if (!(cdata = ec->comp_data))
{ {
wl_resource_post_error(surface_resource, wl_resource_post_error(surface_resource,
WL_DISPLAY_ERROR_INVALID_OBJECT, WL_DISPLAY_ERROR_INVALID_OBJECT,
@ -1277,7 +1276,7 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour
ec->border.changed = ec->changes.border = !ec->borderless; ec->border.changed = ec->changes.border = !ec->borderless;
ec->changes.icon = !!ec->icccm.class; ec->changes.icon = !!ec->icccm.class;
ec->netwm.type = E_WINDOW_TYPE_NORMAL; ec->netwm.type = E_WINDOW_TYPE_NORMAL;
ec->wl_comp_data->set_win_type = EINA_TRUE; ec->comp_data->set_win_type = EINA_TRUE;
EC_CHANGED(ec); EC_CHANGED(ec);
} }
@ -1289,13 +1288,13 @@ _e_xdg_shell_popup_cb_destroy(struct wl_client *client EINA_UNUSED, struct wl_re
/* DBG("XDG_SHELL: Popup Destroy"); */ /* DBG("XDG_SHELL: Popup Destroy"); */
if ((ec = wl_resource_get_user_data(resource))) if ((ec = wl_resource_get_user_data(resource)))
{ {
if (ec->wl_comp_data) if (ec->comp_data)
{ {
if (ec->wl_comp_data->mapped) if (ec->comp_data->mapped)
{ {
if ((ec->wl_comp_data->shell.surface) && if ((ec->comp_data->shell.surface) &&
(ec->wl_comp_data->shell.unmap)) (ec->comp_data->shell.unmap))
ec->wl_comp_data->shell.unmap(ec->wl_comp_data->shell.surface); ec->comp_data->shell.unmap(ec->comp_data->shell.surface);
} }
if (ec->parent) if (ec->parent)
@ -1304,8 +1303,8 @@ _e_xdg_shell_popup_cb_destroy(struct wl_client *client EINA_UNUSED, struct wl_re
eina_list_remove(ec->parent->transients, ec); eina_list_remove(ec->parent->transients, ec);
} }
wl_resource_destroy(ec->wl_comp_data->shell.surface); wl_resource_destroy(ec->comp_data->shell.surface);
ec->wl_comp_data->shell.surface = NULL; ec->comp_data->shell.surface = NULL;
} }
} }
} }
@ -1320,7 +1319,7 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, struct wl_resource *resource
{ {
E_Pixmap *ep; E_Pixmap *ep;
E_Client *ec; E_Client *ec;
E_Comp_Wl_Client_Data *cdata; E_Comp_Client_Data *cdata;
/* DBG("XDG_SHELL: Popup Get"); */ /* DBG("XDG_SHELL: Popup Get"); */
/* DBG("\tSurface: %d", wl_resource_get_id(surface_resource)); */ /* DBG("\tSurface: %d", wl_resource_get_id(surface_resource)); */
@ -1358,7 +1357,7 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, struct wl_resource *resource
} }
/* get the client data */ /* get the client data */
if (!(cdata = ec->wl_comp_data)) if (!(cdata = ec->comp_data))
{ {
wl_resource_post_error(surface_resource, wl_resource_post_error(surface_resource,
WL_DISPLAY_ERROR_INVALID_OBJECT, WL_DISPLAY_ERROR_INVALID_OBJECT,
@ -1406,7 +1405,7 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, struct wl_resource *resource
ec->border.changed = ec->changes.border = !ec->borderless; ec->border.changed = ec->changes.border = !ec->borderless;
ec->changes.icon = !!ec->icccm.class; ec->changes.icon = !!ec->icccm.class;
ec->netwm.type = E_WINDOW_TYPE_POPUP_MENU; ec->netwm.type = E_WINDOW_TYPE_POPUP_MENU;
ec->wl_comp_data->set_win_type = EINA_TRUE; ec->comp_data->set_win_type = EINA_TRUE;
ec->layer = E_LAYER_CLIENT_POPUP; ec->layer = E_LAYER_CLIENT_POPUP;
/* set this client as a transient for parent */ /* set this client as a transient for parent */
@ -1441,7 +1440,7 @@ static const struct xdg_shell_interface _e_xdg_shell_interface =
static void static void
_e_xdg_shell_cb_unbind(struct wl_resource *resource) _e_xdg_shell_cb_unbind(struct wl_resource *resource)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
if (!(cdata = wl_resource_get_user_data(resource))) return; if (!(cdata = wl_resource_get_user_data(resource))) return;
@ -1451,7 +1450,7 @@ _e_xdg_shell_cb_unbind(struct wl_resource *resource)
static int static int
_e_xdg_shell_cb_dispatch(const void *implementation EINA_UNUSED, void *target, uint32_t opcode, const struct wl_message *message EINA_UNUSED, union wl_argument *args) _e_xdg_shell_cb_dispatch(const void *implementation EINA_UNUSED, void *target, uint32_t opcode, const struct wl_message *message EINA_UNUSED, union wl_argument *args)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
if (!(res = target)) return 0; if (!(res = target)) return 0;
@ -1482,7 +1481,7 @@ _e_xdg_shell_cb_dispatch(const void *implementation EINA_UNUSED, void *target, u
static void static void
_e_shell_cb_unbind(struct wl_resource *resource) _e_shell_cb_unbind(struct wl_resource *resource)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
if (!(cdata = wl_resource_get_user_data(resource))) return; if (!(cdata = wl_resource_get_user_data(resource))) return;
@ -1492,7 +1491,7 @@ _e_shell_cb_unbind(struct wl_resource *resource)
static void static void
_e_shell_cb_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id) _e_shell_cb_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
if (!(cdata = data)) if (!(cdata = data))
@ -1516,7 +1515,7 @@ _e_shell_cb_bind(struct wl_client *client, void *data, uint32_t version, uint32_
static void static void
_e_xdg_shell_cb_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id) _e_xdg_shell_cb_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
struct wl_resource *res; struct wl_resource *res;
if (!(cdata = data)) if (!(cdata = data))
@ -1542,7 +1541,7 @@ EAPI void *
e_modapi_init(E_Module *m) e_modapi_init(E_Module *m)
{ {
E_Comp *comp; E_Comp *comp;
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
/* try to get the current compositor */ /* try to get the current compositor */
if (!(comp = e_comp_get(NULL))) return NULL; if (!(comp = e_comp_get(NULL))) return NULL;

View File

@ -1,6 +1,4 @@
#include "e.h" #include "e.h"
#include "e_comp_wl.h"
#include "e_comp_wl_input.h"
/* #include <Ecore_Drm.h> */ /* #include <Ecore_Drm.h> */
#define SCREEN_WIDTH 1920 #define SCREEN_WIDTH 1920

View File

@ -1,6 +1,5 @@
#include "e.h" #include "e.h"
#include <Ecore_Fb.h> #include <Ecore_Fb.h>
#include "e_comp_wl.h"
#include <Ecore_Wayland.h> #include <Ecore_Wayland.h>
EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_FB" }; EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_FB" };

View File

@ -1,6 +1,4 @@
#include "e.h" #include "e.h"
#include "e_comp_wl.h"
#include "e_comp_wl_input.h"
#include <Ecore_X.h> #include <Ecore_X.h>
#define SCREEN_W 1024 #define SCREEN_W 1024
@ -19,7 +17,7 @@ _cb_delete_request(Ecore_Evas *ee EINA_UNUSED)
static Eina_Bool static Eina_Bool
_cb_keymap_changed(void *data, int type EINA_UNUSED, void *event EINA_UNUSED) _cb_keymap_changed(void *data, int type EINA_UNUSED, void *event EINA_UNUSED)
{ {
E_Comp_Wl_Data *cdata; E_Comp_Data *cdata;
E_Config_XKB_Layout *ekbd; E_Config_XKB_Layout *ekbd;
char *rules, *model, *layout; char *rules, *model, *layout;
Ecore_X_Atom xkb = 0; Ecore_X_Atom xkb = 0;