summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2014-07-06 10:51:01 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-06-22 12:27:20 -0400
commitb519643c6a18ccbc1fae732b5e369778ab3c0da7 (patch)
tree314079d3726a541bff042ed521062ea4e2a73c6d
parente8b1b1e763663b3458e1fa86238df9ea5a9bf868 (diff)
downloadenlightenment-b519643c6a18ccbc1fae732b5e369778ab3c0da7.tar.gz
xwayland: Create the wl_client which represents the window manager
process. Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/modules/xwayland/e_mod_main.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c
index fe8b64eeca..5ff6d555dc 100644
--- a/src/modules/xwayland/e_mod_main.c
+++ b/src/modules/xwayland/e_mod_main.c
@@ -8,10 +8,12 @@ typedef struct _E_XWayland_Server E_XWayland_Server;
struct _E_XWayland_Server
{
int disp;
- int abs_fd, unx_fd;
+ int abs_fd, unx_fd, wm_fd;
char lock[256];
+ struct wl_display *wl_disp;
struct wl_event_loop *loop;
+ struct wl_client *client;
Ecore_Fd_Handler *abs_hdlr, *unx_hdlr;
Ecore_Event_Handler *sig_hdlr;
@@ -214,9 +216,11 @@ fail:
break;
default:
close(socks[1]);
- /* TODO: client_create */
+ exs->client = wl_client_create(exs->disp, socks[0]);
+
close(wms[1]);
- /* TODO */
+ exs->wm_fd = wms[0];
+
/* TODO: remove event sources */
break;
case -1:
@@ -230,15 +234,16 @@ fail:
static Eina_Bool
_cb_signal_event(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
{
- /* E_XWayland_Server *exs; */
-
/* NB: SIGUSR1 comes from XWayland Server when it has finished
* initialized. */
- /* if (!(exs = data)) return ECORE_CALLBACK_RENEW; */
-
/* TODO: create "window manager" process */
+ /* TODO: NB:
+ *
+ * Weston creates a smaller window manager process here.
+ * We Maybe able to just do e_comp_x_init, but will have to test that */
+
return ECORE_CALLBACK_RENEW;
}
@@ -261,6 +266,9 @@ e_modapi_init(E_Module *m)
if (!(exs = calloc(1, sizeof(E_XWayland_Server))))
return NULL;
+ /* record wayland display */
+ exs->wl_disp = comp->wl_comp_data->wl.disp;
+
/* default display to zero */
exs->disp = 0;