From eec5cf6a67e0977c71445236b2e6c40870e448dc Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 25 Jun 2015 19:16:27 -0400 Subject: [PATCH] remove E_Comp_Data typedef, use backend-specific typedefs unconditionally this turned into a bit of a charlie-foxtrot due to constant pointer aliasing in the wl compositor codebase no functional changes --- src/bin/e_comp.h | 9 +- src/bin/e_comp_wl.c | 18 +- src/bin/e_comp_wl_data.c | 137 +++++-------- src/bin/e_comp_wl_input.c | 235 +++++++++------------- src/bin/e_comp_x.c | 2 +- src/modules/wl_desktop_shell/e_mod_main.c | 69 +++---- 6 files changed, 193 insertions(+), 277 deletions(-) diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h index 6e4d6b733..6b8cbcbaa 100644 --- a/src/bin/e_comp.h +++ b/src/bin/e_comp.h @@ -3,16 +3,15 @@ typedef struct _E_Comp E_Comp; #ifdef E_COMP_WL typedef struct _E_Comp_Wl_Client_Data E_Comp_Client_Data; -typedef struct _E_Comp_Wl_Data E_Comp_Data; #endif +typedef struct _E_Comp_Wl_Data E_Comp_Wl_Data; #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 +typedef struct _E_Comp_X_Data E_Comp_X_Data; #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 @@ -88,8 +87,8 @@ struct _E_Comp Eina_List *clients; unsigned int new_clients; - E_Comp_Data *x_comp_data; - E_Comp_Data *wl_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/ diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 6c0a4db1a..42888f3db 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -510,7 +510,7 @@ static void _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) { E_Client *ec; - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; struct wl_resource *res; struct wl_client *wc; uint32_t serial, *k; @@ -846,7 +846,7 @@ _e_comp_wl_cb_comp_object_add(void *data EINA_UNUSED, int type EINA_UNUSED, E_Ev static void _e_comp_wl_cb_key_down(void *event) { - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; E_Client *ec; Ecore_Event_Key *ev; uint32_t serial, *end, *k, keycode; @@ -917,7 +917,7 @@ static void _e_comp_wl_cb_key_up(void *event) { E_Client *ec; - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; Ecore_Event_Key *ev; uint32_t serial, *end, *k, keycode; @@ -966,7 +966,7 @@ _e_comp_wl_cb_key_up(void *event) static void _e_comp_wl_cb_mouse_move(void *event) { - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; Ecore_Event_Mouse_Move *ev; if (!(cdata = e_comp->wl_comp_data)) return; @@ -1621,7 +1621,7 @@ _e_comp_wl_compositor_cb_bind(struct wl_client *client, void *data EINA_UNUSED, static void _e_comp_wl_compositor_cb_del(void *data EINA_UNUSED) { - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; E_Comp_Wl_Output *output; cdata = e_comp->wl_comp_data; @@ -2402,7 +2402,7 @@ _e_comp_wl_cb_output_bind(struct wl_client *client, void *data, uint32_t version static Eina_Bool _e_comp_wl_compositor_create(void) { - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; const char *name; int fd = 0; @@ -2411,7 +2411,7 @@ _e_comp_wl_compositor_create(void) E_OBJECT_DEL_SET(e_comp, _e_comp_wl_compositor_cb_del); /* create new compositor data */ - if (!(cdata = E_NEW(E_Comp_Data, 1))) + if (!(cdata = E_NEW(E_Comp_Wl_Data, 1))) { ERR("Could not create compositor data: %m"); return EINA_FALSE; @@ -2879,7 +2879,7 @@ e_comp_wl_output_init(const char *id, const char *make, const char *model, unsigned int refresh, unsigned int subpixel, unsigned int transform) { - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; E_Comp_Wl_Output *output; Eina_List *l2; struct wl_resource *resource; @@ -2947,7 +2947,7 @@ e_comp_wl_output_init(const char *id, const char *make, const char *model, E_API void e_comp_wl_output_remove(const char *id) { - E_Comp_Data *cdata; + E_Comp_Wl_Data *cdata; E_Comp_Wl_Output *output; if (!(cdata = e_comp->wl_comp_data)) return; diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index dfb951a2e..0b9ef0efd 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -159,30 +159,28 @@ static const struct wl_data_source_interface _e_data_source_interface = static void _e_comp_wl_data_device_destroy_selection_data_source(struct wl_listener *listener EINA_UNUSED, void *data) { - E_Comp_Data *cdata; E_Comp_Wl_Data_Source *source; struct wl_resource *data_device_res, *focus = NULL; if (!(source = (E_Comp_Wl_Data_Source*)data)) return; - cdata = e_comp->wl_comp_data; - cdata->selection.data_source = NULL; + e_comp->wl_comp_data->selection.data_source = NULL; - if (cdata->kbd.enabled) - focus = cdata->kbd.focus; + if (e_comp->wl_comp_data->kbd.enabled) + focus = e_comp->wl_comp_data->kbd.focus; if (focus) { data_device_res = - _e_comp_wl_data_find_for_client(cdata->mgr.data_resources, + _e_comp_wl_data_find_for_client(e_comp->wl_comp_data->mgr.data_resources, wl_resource_get_client(source->resource)); if (data_device_res) wl_data_device_send_selection(data_device_res, NULL); } - wl_signal_emit(&cdata->selection.signal, cdata); + wl_signal_emit(&e_comp->wl_comp_data->selection.signal, e_comp->wl_comp_data); } static struct wl_resource* @@ -226,21 +224,19 @@ static void _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Source *source, uint32_t serial) { E_Comp_Wl_Data_Source *sel_source; - E_Comp_Data *cdata; struct wl_resource *offer_res, *data_device_res, *focus = NULL; - cdata = e_comp->wl_comp_data; - sel_source = (E_Comp_Wl_Data_Source*)cdata->selection.data_source; + sel_source = (E_Comp_Wl_Data_Source*)e_comp->wl_comp_data->selection.data_source; if ((sel_source) && - (cdata->selection.serial - serial < UINT32_MAX / 2)) + (e_comp->wl_comp_data->selection.serial - serial < UINT32_MAX / 2)) { /* TODO: elm_entry is sending too many request on now, * for those requests, selection.signal is being emitted also a lot. * when it completes to optimize the entry, it should be checked more. */ - if (cdata->clipboard.source) - wl_signal_emit(&cdata->selection.signal, cdata); + if (e_comp->wl_comp_data->clipboard.source) + wl_signal_emit(&e_comp->wl_comp_data->selection.signal, e_comp->wl_comp_data); return; } @@ -249,20 +245,20 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour { if (sel_source->cancelled) sel_source->cancelled(sel_source); - wl_list_remove(&cdata->selection.data_source_listener.link); - cdata->selection.data_source = NULL; + wl_list_remove(&e_comp->wl_comp_data->selection.data_source_listener.link); + e_comp->wl_comp_data->selection.data_source = NULL; } - cdata->selection.data_source = sel_source = source; - cdata->selection.serial = serial; + e_comp->wl_comp_data->selection.data_source = sel_source = source; + e_comp->wl_comp_data->selection.serial = serial; - if (cdata->kbd.enabled) - focus = cdata->kbd.focus; + if (e_comp->wl_comp_data->kbd.enabled) + focus = e_comp->wl_comp_data->kbd.focus; if (focus) { data_device_res = - _e_comp_wl_data_find_for_client(cdata->mgr.data_resources, + _e_comp_wl_data_find_for_client(e_comp->wl_comp_data->mgr.data_resources, wl_resource_get_client(focus)); if ((data_device_res) && (source)) { @@ -276,29 +272,27 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour wl_data_device_send_selection(data_device_res, NULL); } - wl_signal_emit(&cdata->selection.signal, cdata); + wl_signal_emit(&e_comp->wl_comp_data->selection.signal, e_comp->wl_comp_data); if (source) { - cdata->selection.data_source_listener.notify = + e_comp->wl_comp_data->selection.data_source_listener.notify = _e_comp_wl_data_device_destroy_selection_data_source; wl_signal_add(&source->destroy_signal, - &cdata->selection.data_source_listener); + &e_comp->wl_comp_data->selection.data_source_listener); } } static void _e_comp_wl_data_device_cb_drag_start(struct wl_client *client, struct wl_resource *resource EINA_UNUSED, struct wl_resource *source_resource, struct wl_resource *origin_resource, struct wl_resource *icon_resource, uint32_t serial) { - E_Comp_Data *cdata; E_Comp_Wl_Data_Source *source; Eina_List *l; struct wl_resource *res; DBG("Data Device Drag Start"); - cdata = e_comp->wl_comp_data; - if ((cdata->kbd.focus) && (cdata->kbd.focus != origin_resource)) return; + if ((e_comp->wl_comp_data->kbd.focus) && (e_comp->wl_comp_data->kbd.focus != origin_resource)) return; if (!(source = wl_resource_get_user_data(source_resource))) return; @@ -311,11 +305,11 @@ _e_comp_wl_data_device_cb_drag_start(struct wl_client *client, struct wl_resourc cp = wl_resource_get_user_data(icon_resource); } - EINA_LIST_FOREACH(cdata->ptr.resources, l, res) + EINA_LIST_FOREACH(e_comp->wl_comp_data->ptr.resources, l, res) { if (!e_comp_wl_input_pointer_check(res)) continue; if (wl_resource_get_client(res) != client) continue; - wl_pointer_send_leave(res, serial, cdata->kbd.focus); + wl_pointer_send_leave(res, serial, e_comp->wl_comp_data->kbd.focus); } /* TODO: pointer start drag */ @@ -389,12 +383,10 @@ _e_comp_wl_data_manager_cb_source_create(struct wl_client *client EINA_UNUSED, s 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 EINA_UNUSED) { - E_Comp_Data *cdata; struct wl_resource *res; /* DBG("Data Manager Device Get"); */ - cdata = e_comp->wl_comp_data; /* try to create the data device resource */ res = wl_resource_create(client, &wl_data_device_interface, 1, id); @@ -405,9 +397,9 @@ _e_comp_wl_data_manager_cb_device_get(struct wl_client *client, struct wl_resour return; } - cdata->mgr.data_resources = - eina_list_append(cdata->mgr.data_resources, res); - wl_resource_set_implementation(res, &_e_data_device_interface, cdata, + e_comp->wl_comp_data->mgr.data_resources = + eina_list_append(e_comp->wl_comp_data->mgr.data_resources, res); + wl_resource_set_implementation(res, &_e_data_device_interface, e_comp->wl_comp_data, _e_comp_wl_data_device_cb_unbind); } @@ -420,13 +412,13 @@ 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_Data *e_comp->wl_comp_data; */ /* DBG("Comp_Wl_Data: Unbind Manager"); */ -/* if (!(cdata = wl_resource_get_user_data(resource))) return; */ +/* if (!(e_comp->wl_comp_data = wl_resource_get_user_data(resource))) return; */ -/* cdata->mgr.resource = NULL; */ +/* e_comp->wl_comp_data->mgr.resource = NULL; */ /* } */ static void @@ -518,14 +510,12 @@ _e_comp_wl_clipboard_offer_create(E_Comp_Wl_Clipboard_Source* source, int fd) static Eina_Bool _e_comp_wl_clipboard_source_save(void *data EINA_UNUSED, Ecore_Fd_Handler *handler) { - E_Comp_Data *cdata; E_Comp_Wl_Clipboard_Source *source; char *p; int len, size; - cdata = e_comp->wl_comp_data; - if (!(source = (E_Comp_Wl_Clipboard_Source*)cdata->clipboard.source)) + if (!(source = (E_Comp_Wl_Clipboard_Source*)e_comp->wl_comp_data->clipboard.source)) return ECORE_CALLBACK_CANCEL; /* extend contents buffer */ @@ -548,7 +538,7 @@ _e_comp_wl_clipboard_source_save(void *data EINA_UNUSED, Ecore_Fd_Handler *handl else if (len < 0) { _e_comp_wl_clipboard_source_unref(source); - cdata->clipboard.source = NULL; + e_comp->wl_comp_data->clipboard.source = NULL; } else { @@ -585,7 +575,7 @@ _e_comp_wl_clipboard_source_cancelled_send(E_Comp_Wl_Data_Source *source EINA_UN } static E_Comp_Wl_Clipboard_Source* -_e_comp_wl_clipboard_source_create(E_Comp_Data *cdata, const char *mime_type, uint32_t serial, int fd) +_e_comp_wl_clipboard_source_create(const char *mime_type, uint32_t serial, int fd) { E_Comp_Wl_Clipboard_Source *source; @@ -610,7 +600,7 @@ _e_comp_wl_clipboard_source_create(E_Comp_Data *cdata, const char *mime_type, ui source->fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, _e_comp_wl_clipboard_source_save, - cdata, NULL, NULL); + e_comp->wl_comp_data, NULL, NULL); if (!source->fd_handler) return NULL; source->fd = fd; @@ -621,20 +611,18 @@ _e_comp_wl_clipboard_source_create(E_Comp_Data *cdata, const char *mime_type, ui static void _e_comp_wl_clipboard_selection_set(struct wl_listener *listener EINA_UNUSED, void *data EINA_UNUSED) { - E_Comp_Data *cdata; E_Comp_Wl_Data_Source *sel_source; E_Comp_Wl_Clipboard_Source *clip_source; int p[2]; char *mime_type; - cdata = e_comp->wl_comp_data; - sel_source = (E_Comp_Wl_Data_Source*) cdata->selection.data_source; - clip_source = (E_Comp_Wl_Clipboard_Source*) cdata->clipboard.source; + sel_source = (E_Comp_Wl_Data_Source*) e_comp->wl_comp_data->selection.data_source; + clip_source = (E_Comp_Wl_Clipboard_Source*) e_comp->wl_comp_data->clipboard.source; if (!sel_source) { if (clip_source) - _e_comp_wl_data_device_selection_set(cdata, + _e_comp_wl_data_device_selection_set(e_comp->wl_comp_data, &clip_source->data_source, clip_source->serial); return; @@ -645,7 +633,7 @@ _e_comp_wl_clipboard_selection_set(struct wl_listener *listener EINA_UNUSED, voi if (clip_source) _e_comp_wl_clipboard_source_unref(clip_source); - cdata->clipboard.source = NULL; + e_comp->wl_comp_data->clipboard.source = NULL; mime_type = eina_list_nth(sel_source->mime_types, 0); if (pipe2(p, O_CLOEXEC) == -1) @@ -653,67 +641,56 @@ _e_comp_wl_clipboard_selection_set(struct wl_listener *listener EINA_UNUSED, voi sel_source->send(sel_source, mime_type, p[1]); - cdata->clipboard.source = - _e_comp_wl_clipboard_source_create(cdata, mime_type, - cdata->selection.serial, p[0]); + e_comp->wl_comp_data->clipboard.source = + _e_comp_wl_clipboard_source_create(mime_type, + e_comp->wl_comp_data->selection.serial, p[0]); - if (!cdata->clipboard.source) + if (!e_comp->wl_comp_data->clipboard.source) close(p[0]); } -static void -_e_comp_wl_clipboard_destroy(E_Comp_Data *cdata) -{ - wl_list_remove(&cdata->clipboard.listener.link); -} - static void _e_comp_wl_clipboard_create(void) { - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; - cdata->clipboard.listener.notify = _e_comp_wl_clipboard_selection_set; - wl_signal_add(&cdata->selection.signal, &cdata->clipboard.listener); + e_comp->wl_comp_data->clipboard.listener.notify = _e_comp_wl_clipboard_selection_set; + wl_signal_add(&e_comp->wl_comp_data->selection.signal, &e_comp->wl_comp_data->clipboard.listener); } EINTERN void e_comp_wl_data_device_keyboard_focus_set(void) { - E_Comp_Data *cdata; struct wl_resource *data_device_res, *offer_res, *focus; E_Comp_Wl_Data_Source *source; - cdata = e_comp->wl_comp_data; - if (!cdata->kbd.enabled) + if (!e_comp->wl_comp_data->kbd.enabled) { ERR("Keyboard not enabled"); return; } - if (!(focus = cdata->kbd.focus)) + if (!(focus = e_comp->wl_comp_data->kbd.focus)) { ERR("No focused resource"); return; } data_device_res = - _e_comp_wl_data_find_for_client(cdata->mgr.data_resources, + _e_comp_wl_data_find_for_client(e_comp->wl_comp_data->mgr.data_resources, wl_resource_get_client(focus)); if (!data_device_res) return; - source = (E_Comp_Wl_Data_Source*)cdata->selection.data_source; + source = (E_Comp_Wl_Data_Source*)e_comp->wl_comp_data->selection.data_source; if (source) { uint32_t serial; - serial = wl_display_next_serial(cdata->wl.disp); + serial = wl_display_next_serial(e_comp->wl_comp_data->wl.disp); offer_res = _e_comp_wl_data_device_data_offer_create(source, data_device_res); wl_data_device_send_enter(data_device_res, serial, focus, - cdata->ptr.x, cdata->ptr.y, offer_res); + e_comp->wl_comp_data->ptr.x, e_comp->wl_comp_data->ptr.y, offer_res); wl_data_device_send_selection(data_device_res, offer_res); } } @@ -721,21 +698,17 @@ e_comp_wl_data_device_keyboard_focus_set(void) EINTERN Eina_Bool e_comp_wl_data_manager_init(void) { - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; - /* try to create global data manager */ - cdata->mgr.global = - wl_global_create(cdata->wl.disp, &wl_data_device_manager_interface, 1, - cdata, _e_comp_wl_data_cb_bind_manager); - if (!cdata->mgr.global) + e_comp->wl_comp_data->mgr.global = + wl_global_create(e_comp->wl_comp_data->wl.disp, &wl_data_device_manager_interface, 1, + e_comp->wl_comp_data, _e_comp_wl_data_cb_bind_manager); + if (!e_comp->wl_comp_data->mgr.global) { ERR("Could not create global for data device manager: %m"); return EINA_FALSE; } - wl_signal_init(&cdata->selection.signal); + wl_signal_init(&e_comp->wl_comp_data->selection.signal); /* create clipboard */ _e_comp_wl_clipboard_create(); @@ -747,7 +720,7 @@ EINTERN void e_comp_wl_data_manager_shutdown(void) { /* destroy the global manager resource */ - /* if (cdata->mgr.global) wl_global_destroy(cdata->mgr.global); */ + /* if (e_comp->wl_comp_data->mgr.global) wl_global_destroy(e_comp->wl_comp_data->mgr.global); */ - _e_comp_wl_clipboard_destroy(e_comp->wl_comp_data); + wl_list_remove(&e_comp->wl_comp_data->clipboard.listener.link); } diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 316457f3b..2e5fdce21 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -6,21 +6,18 @@ static void _e_comp_wl_input_update_seat_caps(void) { - E_Comp_Data *cdata; Eina_List *l; struct wl_resource *res; enum wl_seat_capability caps = 0; - cdata = e_comp->wl_comp_data; - - if (cdata->ptr.enabled) + if (e_comp->wl_comp_data->ptr.enabled) caps |= WL_SEAT_CAPABILITY_POINTER; - if (cdata->kbd.enabled) + if (e_comp->wl_comp_data->kbd.enabled) caps |= WL_SEAT_CAPABILITY_KEYBOARD; - if (cdata->touch.enabled) + if (e_comp->wl_comp_data->touch.enabled) caps |= WL_SEAT_CAPABILITY_TOUCH; - EINA_LIST_FOREACH(cdata->seat.resources, l, res) + EINA_LIST_FOREACH(e_comp->wl_comp_data->seat.resources, l, res) wl_seat_send_capabilities(res, caps); } @@ -38,6 +35,7 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou E_CLIENT_FOREACH(ec) { + if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) continue; if (!ec->comp_data->surface) continue; if (client != wl_resource_get_client(ec->comp_data->surface)) continue; if (ec->mouse.in) @@ -90,42 +88,33 @@ static const struct wl_touch_interface _e_touch_interface = static void _e_comp_wl_input_cb_pointer_unbind(struct wl_resource *resource) { - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; - cdata->ptr.resources = eina_list_remove(cdata->ptr.resources, resource); + e_comp->wl_comp_data->ptr.resources = eina_list_remove(e_comp->wl_comp_data->ptr.resources, 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; struct wl_resource *res; - cdata = e_comp->wl_comp_data; - /* try to create pointer resource */ res = wl_resource_create(client, &wl_pointer_interface, wl_resource_get_version(resource), id); if (!res) { - ERR("Could not create pointer on seat %s: %m", cdata->seat.name); + ERR("Could not create pointer on seat %s: %m", e_comp->wl_comp_data->seat.name); wl_client_post_no_memory(client); return; } - cdata->ptr.resources = eina_list_append(cdata->ptr.resources, res); - wl_resource_set_implementation(res, &_e_pointer_interface, cdata, + e_comp->wl_comp_data->ptr.resources = eina_list_append(e_comp->wl_comp_data->ptr.resources, res); + wl_resource_set_implementation(res, &_e_pointer_interface, e_comp->wl_comp_data, _e_comp_wl_input_cb_pointer_unbind); } static void _e_comp_wl_input_cb_keyboard_unbind(struct wl_resource *resource) { - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; - cdata->kbd.resources = eina_list_remove(cdata->kbd.resources, resource); + e_comp->wl_comp_data->kbd.resources = eina_list_remove(e_comp->wl_comp_data->kbd.resources, resource); } void @@ -162,28 +151,25 @@ static void _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *resource, uint32_t id) { E_Client *focused; - E_Comp_Data *cdata; struct wl_resource *res; - cdata = e_comp->wl_comp_data; - /* try to create keyboard resource */ res = wl_resource_create(client, &wl_keyboard_interface, wl_resource_get_version(resource), id); if (!res) { - ERR("Could not create keyboard on seat %s: %m", cdata->seat.name); + ERR("Could not create keyboard on seat %s: %m", e_comp->wl_comp_data->seat.name); wl_client_post_no_memory(client); return; } - cdata->kbd.resources = eina_list_append(cdata->kbd.resources, res); - wl_resource_set_implementation(res, &_e_keyboard_interface, cdata, + e_comp->wl_comp_data->kbd.resources = eina_list_append(e_comp->wl_comp_data->kbd.resources, res); + wl_resource_set_implementation(res, &_e_keyboard_interface, e_comp->wl_comp_data, _e_comp_wl_input_cb_keyboard_unbind); /* send current keymap */ wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, - cdata->xkb.fd, cdata->xkb.size); + e_comp->wl_comp_data->xkb.fd, e_comp->wl_comp_data->xkb.size); /* if the client owns the focused surface, we need to send an enter */ focused = e_client_focused_get(); @@ -196,32 +182,26 @@ _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *r static void _e_comp_wl_input_cb_touch_unbind(struct wl_resource *resource) { - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; - cdata->touch.resources = eina_list_remove(cdata->touch.resources, resource); + e_comp->wl_comp_data->touch.resources = eina_list_remove(e_comp->wl_comp_data->touch.resources, resource); } 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; struct wl_resource *res; - cdata = e_comp->wl_comp_data; - /* try to create pointer resource */ res = wl_resource_create(client, &wl_touch_interface, wl_resource_get_version(resource), id); if (!res) { - ERR("Could not create touch on seat %s: %m", cdata->seat.name); + ERR("Could not create touch on seat %s: %m", e_comp->wl_comp_data->seat.name); wl_client_post_no_memory(client); return; } - cdata->touch.resources = eina_list_append(cdata->touch.resources, res); - wl_resource_set_implementation(res, &_e_touch_interface, cdata, + e_comp->wl_comp_data->touch.resources = eina_list_append(e_comp->wl_comp_data->touch.resources, res); + wl_resource_set_implementation(res, &_e_touch_interface, e_comp->wl_comp_data, _e_comp_wl_input_cb_touch_unbind); } @@ -235,19 +215,14 @@ 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; - - cdata = e_comp->wl_comp_data; - cdata->seat.resources = eina_list_remove(cdata->seat.resources, resource); + e_comp->wl_comp_data->seat.resources = eina_list_remove(e_comp->wl_comp_data->seat.resources, resource); } static void _e_comp_wl_input_cb_bind_seat(struct wl_client *client, void *data EINA_UNUSED, uint32_t version, uint32_t id) { - E_Comp_Data *cdata; struct wl_resource *res; - cdata = e_comp->wl_comp_data; res = wl_resource_create(client, &wl_seat_interface, MIN(version, 4), id); if (!res) { @@ -256,15 +231,15 @@ _e_comp_wl_input_cb_bind_seat(struct wl_client *client, void *data EINA_UNUSED, } /* store version of seat interface for reuse in updating capabilities */ - cdata->seat.version = version; - cdata->seat.resources = eina_list_append(cdata->seat.resources, res); + e_comp->wl_comp_data->seat.version = version; + e_comp->wl_comp_data->seat.resources = eina_list_append(e_comp->wl_comp_data->seat.resources, res); - wl_resource_set_implementation(res, &_e_seat_interface, cdata, + wl_resource_set_implementation(res, &_e_seat_interface, e_comp->wl_comp_data, _e_comp_wl_input_cb_unbind_seat); _e_comp_wl_input_update_seat_caps(); - if (cdata->seat.version >= WL_SEAT_NAME_SINCE_VERSION) - wl_seat_send_name(res, cdata->seat.name); + if (e_comp->wl_comp_data->seat.version >= WL_SEAT_NAME_SINCE_VERSION) + wl_seat_send_name(res, e_comp->wl_comp_data->seat.name); } static int @@ -322,44 +297,42 @@ _e_comp_wl_input_keymap_update(struct xkb_keymap *keymap) struct wl_resource *res; Eina_List *l; uint32_t serial; - E_Comp_Data *cdata; - cdata = e_comp->wl_comp_data; /* unreference any existing keymap */ - if (cdata->xkb.keymap) xkb_map_unref(cdata->xkb.keymap); + if (e_comp->wl_comp_data->xkb.keymap) xkb_map_unref(e_comp->wl_comp_data->xkb.keymap); /* unmap any existing keyboard area */ - if (cdata->xkb.area) munmap(cdata->xkb.area, cdata->xkb.size); - if (cdata->xkb.fd >= 0) close(cdata->xkb.fd); + if (e_comp->wl_comp_data->xkb.area) munmap(e_comp->wl_comp_data->xkb.area, e_comp->wl_comp_data->xkb.size); + if (e_comp->wl_comp_data->xkb.fd >= 0) close(e_comp->wl_comp_data->xkb.fd); /* unreference any existing keyboard state */ - if (cdata->xkb.state) + if (e_comp->wl_comp_data->xkb.state) { latched = - xkb_state_serialize_mods(cdata->xkb.state, XKB_STATE_MODS_LATCHED); + xkb_state_serialize_mods(e_comp->wl_comp_data->xkb.state, XKB_STATE_MODS_LATCHED); locked = - xkb_state_serialize_mods(cdata->xkb.state, XKB_STATE_MODS_LOCKED); + xkb_state_serialize_mods(e_comp->wl_comp_data->xkb.state, XKB_STATE_MODS_LOCKED); group = - xkb_state_serialize_layout(cdata->xkb.state, + xkb_state_serialize_layout(e_comp->wl_comp_data->xkb.state, XKB_STATE_LAYOUT_EFFECTIVE); - xkb_state_unref(cdata->xkb.state); + xkb_state_unref(e_comp->wl_comp_data->xkb.state); } /* create a new xkb state */ - cdata->xkb.state = xkb_state_new(keymap); + e_comp->wl_comp_data->xkb.state = xkb_state_new(keymap); if ((latched) || (locked) || (group)) - xkb_state_update_mask(cdata->xkb.state, 0, latched, locked, 0, 0, group); + xkb_state_update_mask(e_comp->wl_comp_data->xkb.state, 0, latched, locked, 0, 0, group); /* increment keymap reference */ - cdata->xkb.keymap = xkb_map_ref(keymap); + e_comp->wl_comp_data->xkb.keymap = xkb_map_ref(keymap); /* fetch updated modifiers */ - cdata->kbd.mod_shift = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_SHIFT); - cdata->kbd.mod_caps = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_CAPS); - cdata->kbd.mod_ctrl = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_CTRL); - cdata->kbd.mod_alt = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_ALT); - cdata->kbd.mod_super = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_LOGO); + e_comp->wl_comp_data->kbd.mod_shift = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_SHIFT); + e_comp->wl_comp_data->kbd.mod_caps = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_CAPS); + e_comp->wl_comp_data->kbd.mod_ctrl = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_CTRL); + e_comp->wl_comp_data->kbd.mod_alt = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_ALT); + e_comp->wl_comp_data->kbd.mod_super = xkb_map_mod_get_index(keymap, XKB_MOD_NAME_LOGO); if (!(tmp = xkb_map_get_as_string(keymap))) { @@ -367,32 +340,32 @@ _e_comp_wl_input_keymap_update(struct xkb_keymap *keymap) return; } - cdata->xkb.size = strlen(tmp) + 1; - cdata->xkb.fd = _e_comp_wl_input_keymap_fd_get(cdata->xkb.size); - if (cdata->xkb.fd < 0) + e_comp->wl_comp_data->xkb.size = strlen(tmp) + 1; + e_comp->wl_comp_data->xkb.fd = _e_comp_wl_input_keymap_fd_get(e_comp->wl_comp_data->xkb.size); + if (e_comp->wl_comp_data->xkb.fd < 0) { ERR("Could not create keymap file"); free(tmp); return; } - cdata->xkb.area = - mmap(NULL, cdata->xkb.size, (PROT_READ | PROT_WRITE), - MAP_SHARED, cdata->xkb.fd, 0); - if (cdata->xkb.area == MAP_FAILED) + e_comp->wl_comp_data->xkb.area = + mmap(NULL, e_comp->wl_comp_data->xkb.size, (PROT_READ | PROT_WRITE), + MAP_SHARED, e_comp->wl_comp_data->xkb.fd, 0); + if (e_comp->wl_comp_data->xkb.area == MAP_FAILED) { ERR("Failed to mmap keymap area: %m"); free(tmp); return; } - strcpy(cdata->xkb.area, tmp); + strcpy(e_comp->wl_comp_data->xkb.area, tmp); free(tmp); /* send updated keymap */ - EINA_LIST_FOREACH(cdata->kbd.resources, l, res) + EINA_LIST_FOREACH(e_comp->wl_comp_data->kbd.resources, l, res) wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, - cdata->xkb.fd, cdata->xkb.size); + e_comp->wl_comp_data->xkb.fd, e_comp->wl_comp_data->xkb.size); /* update modifiers */ e_comp_wl_input_keyboard_modifiers_update(); @@ -400,36 +373,32 @@ _e_comp_wl_input_keymap_update(struct xkb_keymap *keymap) if ((!latched) && (!locked)) return; /* send modifiers */ - serial = wl_display_get_serial(cdata->wl.disp); - EINA_LIST_FOREACH(cdata->kbd.resources, l, res) - wl_keyboard_send_modifiers(res, serial, cdata->kbd.mod_depressed, - cdata->kbd.mod_latched, cdata->kbd.mod_locked, - cdata->kbd.mod_group); + serial = wl_display_get_serial(e_comp->wl_comp_data->wl.disp); + EINA_LIST_FOREACH(e_comp->wl_comp_data->kbd.resources, l, res) + wl_keyboard_send_modifiers(res, serial, e_comp->wl_comp_data->kbd.mod_depressed, + e_comp->wl_comp_data->kbd.mod_latched, e_comp->wl_comp_data->kbd.mod_locked, + e_comp->wl_comp_data->kbd.mod_group); } EINTERN Eina_Bool e_comp_wl_input_init(void) { - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; - /* set default seat name */ - if (!cdata->seat.name) cdata->seat.name = "default"; + if (!e_comp->wl_comp_data->seat.name) e_comp->wl_comp_data->seat.name = "default"; - cdata->xkb.fd = -1; + e_comp->wl_comp_data->xkb.fd = -1; /* create the global resource for input seat */ - cdata->seat.global = - wl_global_create(cdata->wl.disp, &wl_seat_interface, 4, - cdata, _e_comp_wl_input_cb_bind_seat); - if (!cdata->seat.global) + e_comp->wl_comp_data->seat.global = + wl_global_create(e_comp->wl_comp_data->wl.disp, &wl_seat_interface, 4, + e_comp->wl_comp_data, _e_comp_wl_input_cb_bind_seat); + if (!e_comp->wl_comp_data->seat.global) { ERR("Could not create global for seat: %m"); return EINA_FALSE; } - wl_array_init(&cdata->kbd.keys); + wl_array_init(&e_comp->wl_comp_data->kbd.keys); return EINA_TRUE; } @@ -438,41 +407,38 @@ EINTERN void e_comp_wl_input_shutdown(void) { struct wl_resource *res; - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; /* destroy pointer resources */ - EINA_LIST_FREE(cdata->ptr.resources, res) + EINA_LIST_FREE(e_comp->wl_comp_data->ptr.resources, res) wl_resource_destroy(res); /* destroy keyboard resources */ - EINA_LIST_FREE(cdata->kbd.resources, res) + EINA_LIST_FREE(e_comp->wl_comp_data->kbd.resources, res) wl_resource_destroy(res); /* destroy touch resources */ - EINA_LIST_FREE(cdata->touch.resources, res) + EINA_LIST_FREE(e_comp->wl_comp_data->touch.resources, res) wl_resource_destroy(res); - /* destroy cdata->kbd.keys array */ - wl_array_release(&cdata->kbd.keys); + /* destroy e_comp->wl_comp_data->kbd.keys array */ + wl_array_release(&e_comp->wl_comp_data->kbd.keys); /* unreference any existing keymap */ - if (cdata->xkb.keymap) xkb_map_unref(cdata->xkb.keymap); + if (e_comp->wl_comp_data->xkb.keymap) xkb_map_unref(e_comp->wl_comp_data->xkb.keymap); /* unmap any existing keyboard area */ - if (cdata->xkb.area) munmap(cdata->xkb.area, cdata->xkb.size); - if (cdata->xkb.fd >= 0) close(cdata->xkb.fd); + if (e_comp->wl_comp_data->xkb.area) munmap(e_comp->wl_comp_data->xkb.area, e_comp->wl_comp_data->xkb.size); + if (e_comp->wl_comp_data->xkb.fd >= 0) close(e_comp->wl_comp_data->xkb.fd); /* unreference any existing keyboard state */ - if (cdata->xkb.state) xkb_state_unref(cdata->xkb.state); + if (e_comp->wl_comp_data->xkb.state) xkb_state_unref(e_comp->wl_comp_data->xkb.state); /* unreference any existing context */ - if (cdata->xkb.context) xkb_context_unref(cdata->xkb.context); + if (e_comp->wl_comp_data->xkb.context) xkb_context_unref(e_comp->wl_comp_data->xkb.context); /* destroy the global seat resource */ - if (cdata->seat.global) wl_global_destroy(cdata->seat.global); - cdata->seat.global = NULL; + if (e_comp->wl_comp_data->seat.global) wl_global_destroy(e_comp->wl_comp_data->seat.global); + e_comp->wl_comp_data->seat.global = NULL; } EINTERN Eina_Bool @@ -492,18 +458,14 @@ e_comp_wl_input_keyboard_check(struct wl_resource *res) EINTERN void e_comp_wl_input_keyboard_modifiers_serialize(void) { - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; - - cdata->kbd.mod_depressed = - xkb_state_serialize_mods(cdata->xkb.state, XKB_STATE_DEPRESSED); - cdata->kbd.mod_latched = - xkb_state_serialize_mods(cdata->xkb.state, XKB_STATE_MODS_LATCHED); - cdata->kbd.mod_locked = - xkb_state_serialize_mods(cdata->xkb.state, XKB_STATE_MODS_LOCKED); - cdata->kbd.mod_group = - xkb_state_serialize_layout(cdata->xkb.state, XKB_STATE_LAYOUT_EFFECTIVE); + e_comp->wl_comp_data->kbd.mod_depressed = + xkb_state_serialize_mods(e_comp->wl_comp_data->xkb.state, XKB_STATE_DEPRESSED); + e_comp->wl_comp_data->kbd.mod_latched = + xkb_state_serialize_mods(e_comp->wl_comp_data->xkb.state, XKB_STATE_MODS_LATCHED); + e_comp->wl_comp_data->kbd.mod_locked = + xkb_state_serialize_mods(e_comp->wl_comp_data->xkb.state, XKB_STATE_MODS_LOCKED); + e_comp->wl_comp_data->kbd.mod_group = + xkb_state_serialize_layout(e_comp->wl_comp_data->xkb.state, XKB_STATE_LAYOUT_EFFECTIVE); } EINTERN void @@ -512,36 +474,32 @@ e_comp_wl_input_keyboard_modifiers_update(void) uint32_t serial; struct wl_resource *res; Eina_List *l; - E_Comp_Data *cdata; - cdata = e_comp->wl_comp_data; e_comp_wl_input_keyboard_modifiers_serialize(); - if (!eina_list_count(cdata->kbd.resources)) return; + if (!eina_list_count(e_comp->wl_comp_data->kbd.resources)) return; - serial = wl_display_next_serial(cdata->wl.disp); - EINA_LIST_FOREACH(cdata->kbd.resources, l, res) + serial = wl_display_next_serial(e_comp->wl_comp_data->wl.disp); + EINA_LIST_FOREACH(e_comp->wl_comp_data->kbd.resources, l, res) wl_keyboard_send_modifiers(res, serial, - cdata->kbd.mod_depressed, - cdata->kbd.mod_latched, - cdata->kbd.mod_locked, - cdata->kbd.mod_group); + e_comp->wl_comp_data->kbd.mod_depressed, + e_comp->wl_comp_data->kbd.mod_latched, + e_comp->wl_comp_data->kbd.mod_locked, + e_comp->wl_comp_data->kbd.mod_group); } EINTERN void e_comp_wl_input_keyboard_state_update(uint32_t keycode, Eina_Bool pressed) { enum xkb_key_direction dir; - E_Comp_Data *cdata; - cdata = e_comp->wl_comp_data; - if (!cdata->xkb.state) return; + if (!e_comp->wl_comp_data->xkb.state) return; if (pressed) dir = XKB_KEY_DOWN; else dir = XKB_KEY_UP; - cdata->kbd.mod_changed = - xkb_state_update_key(cdata->xkb.state, keycode + 8, dir); + e_comp->wl_comp_data->kbd.mod_changed = + xkb_state_update_key(e_comp->wl_comp_data->xkb.state, keycode + 8, dir); } E_API void @@ -577,9 +535,6 @@ e_comp_wl_input_keymap_set(const char *rules, const char *model, const char *lay { struct xkb_keymap *keymap; struct xkb_rule_names names; - E_Comp_Data *cdata; - - cdata = e_comp->wl_comp_data; /* DBG("COMP_WL: Keymap Set: %s %s %s", rules, model, layout); */ @@ -590,13 +545,13 @@ e_comp_wl_input_keymap_set(const char *rules, const char *model, const char *lay if (layout) names.layout = strdup(layout); /* unreference any existing context */ - if (cdata->xkb.context) xkb_context_unref(cdata->xkb.context); + if (e_comp->wl_comp_data->xkb.context) xkb_context_unref(e_comp->wl_comp_data->xkb.context); /* create a new xkb context */ - cdata->xkb.context = xkb_context_new(0); + e_comp->wl_comp_data->xkb.context = xkb_context_new(0); /* fetch new keymap based on names */ - keymap = xkb_map_new_from_names(cdata->xkb.context, &names, 0); + keymap = xkb_map_new_from_names(e_comp->wl_comp_data->xkb.context, &names, 0); /* update compositor keymap */ _e_comp_wl_input_keymap_update(keymap); diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index fa3a4a10f..caa264ee8 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -4871,7 +4871,7 @@ _e_comp_x_setup(Ecore_X_Window root, int w, int h) if (!ecore_x_window_manage(root)) return EINA_FALSE; E_OBJECT_DEL_SET(e_comp, _e_comp_x_del); - e_comp->x_comp_data = E_NEW(E_Comp_Data, 1); + e_comp->x_comp_data = E_NEW(E_Comp_X_Data, 1); ecore_x_e_window_profile_supported_set(root, e_config->use_desktop_window_profile); e_comp->cm_selection = ecore_x_window_input_new(root, 0, 0, 1, 1); if (!e_comp->cm_selection) return EINA_FALSE; diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index d69aa6089..43f03dd81 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -143,7 +143,6 @@ static void _e_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource EINA_UNUSED, uint32_t serial EINA_UNUSED) { E_Client *ec; - E_Comp_Data *cdata; E_Binding_Event_Mouse_Button ev; /* get the client for this resource */ @@ -157,8 +156,7 @@ _e_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resourc if ((ec->maximized) || (ec->fullscreen)) return; - cdata = e_comp->wl_comp_data; - switch (cdata->ptr.button) + switch (e_comp->wl_comp_data->ptr.button) { case BTN_LEFT: ev.button = 1; @@ -170,13 +168,13 @@ _e_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resourc ev.button = 3; break; default: - ev.button = cdata->ptr.button; + ev.button = e_comp->wl_comp_data->ptr.button; break; } e_comp_object_frame_xy_unadjust(ec->frame, - wl_fixed_to_int(cdata->ptr.x), - wl_fixed_to_int(cdata->ptr.y), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.x), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.y), &ev.canvas.x, &ev.canvas.y); _e_shell_surface_mouse_down_helper(ec, &ev, EINA_TRUE); @@ -186,7 +184,6 @@ static void _e_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource EINA_UNUSED, uint32_t serial EINA_UNUSED, uint32_t edges) { E_Client *ec; - E_Comp_Data *cdata; E_Binding_Event_Mouse_Button ev; /* get the client for this resource */ @@ -203,16 +200,14 @@ _e_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resou if ((ec->maximized) || (ec->fullscreen)) return; - cdata = e_comp->wl_comp_data; - DBG("Comp Resize Edges Set: %d", edges); - cdata->resize.resource = resource; - cdata->resize.edges = edges; - cdata->ptr.grab_x = cdata->ptr.x - wl_fixed_from_int(ec->client.x); - cdata->ptr.grab_y = cdata->ptr.y - wl_fixed_from_int(ec->client.y); + e_comp->wl_comp_data->resize.resource = resource; + e_comp->wl_comp_data->resize.edges = edges; + e_comp->wl_comp_data->ptr.grab_x = e_comp->wl_comp_data->ptr.x - wl_fixed_from_int(ec->client.x); + e_comp->wl_comp_data->ptr.grab_y = e_comp->wl_comp_data->ptr.y - wl_fixed_from_int(ec->client.y); - switch (cdata->ptr.button) + switch (e_comp->wl_comp_data->ptr.button) { case BTN_LEFT: ev.button = 1; @@ -224,13 +219,13 @@ _e_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resou ev.button = 3; break; default: - ev.button = cdata->ptr.button; + ev.button = e_comp->wl_comp_data->ptr.button; break; } e_comp_object_frame_xy_unadjust(ec->frame, - wl_fixed_to_int(cdata->ptr.x), - wl_fixed_to_int(cdata->ptr.y), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.x), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.y), &ev.canvas.x, &ev.canvas.y); _e_shell_surface_mouse_down_helper(ec, &ev, EINA_FALSE); @@ -724,7 +719,6 @@ static void _e_xdg_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource EINA_UNUSED, uint32_t serial EINA_UNUSED) { E_Client *ec; - E_Comp_Data *cdata; E_Binding_Event_Mouse_Button ev; /* get the client for this resource */ @@ -738,8 +732,7 @@ _e_xdg_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_res if ((ec->maximized) || (ec->fullscreen)) return; - cdata = e_comp->wl_comp_data; - switch (cdata->ptr.button) + switch (e_comp->wl_comp_data->ptr.button) { case BTN_LEFT: ev.button = 1; @@ -751,13 +744,13 @@ _e_xdg_shell_surface_cb_move(struct wl_client *client EINA_UNUSED, struct wl_res ev.button = 3; break; default: - ev.button = cdata->ptr.button; + ev.button = e_comp->wl_comp_data->ptr.button; break; } e_comp_object_frame_xy_unadjust(ec->frame, - wl_fixed_to_int(cdata->ptr.x), - wl_fixed_to_int(cdata->ptr.y), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.x), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.y), &ev.canvas.x, &ev.canvas.y); _e_shell_surface_mouse_down_helper(ec, &ev, EINA_TRUE); @@ -767,7 +760,6 @@ static void _e_xdg_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat_resource EINA_UNUSED, uint32_t serial EINA_UNUSED, uint32_t edges) { E_Client *ec; - E_Comp_Data *cdata; E_Binding_Event_Mouse_Button ev; /* DBG("XDG_SHELL: Surface Resize: %d\tEdges: %d", */ @@ -787,13 +779,12 @@ _e_xdg_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_r if ((ec->maximized) || (ec->fullscreen)) return; - cdata = e_comp->wl_comp_data; - cdata->resize.resource = resource; - cdata->resize.edges = edges; - cdata->ptr.grab_x = cdata->ptr.x - wl_fixed_from_int(ec->client.x); - cdata->ptr.grab_y = cdata->ptr.y - wl_fixed_from_int(ec->client.y); + e_comp->wl_comp_data->resize.resource = resource; + e_comp->wl_comp_data->resize.edges = edges; + e_comp->wl_comp_data->ptr.grab_x = e_comp->wl_comp_data->ptr.x - wl_fixed_from_int(ec->client.x); + e_comp->wl_comp_data->ptr.grab_y = e_comp->wl_comp_data->ptr.y - wl_fixed_from_int(ec->client.y); - switch (cdata->ptr.button) + switch (e_comp->wl_comp_data->ptr.button) { case BTN_LEFT: ev.button = 1; @@ -805,13 +796,13 @@ _e_xdg_shell_surface_cb_resize(struct wl_client *client EINA_UNUSED, struct wl_r ev.button = 3; break; default: - ev.button = cdata->ptr.button; + ev.button = e_comp->wl_comp_data->ptr.button; break; } e_comp_object_frame_xy_unadjust(ec->frame, - wl_fixed_to_int(cdata->ptr.x), - wl_fixed_to_int(cdata->ptr.y), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.x), + wl_fixed_to_int(e_comp->wl_comp_data->ptr.y), &ev.canvas.x, &ev.canvas.y); _e_shell_surface_mouse_down_helper(ec, &ev, EINA_FALSE); @@ -1364,8 +1355,6 @@ E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_Desktop_Shell" }; E_API void * e_modapi_init(E_Module *m) { - E_Comp_Data *cdata; - /* try to get the current compositor */ if (!e_comp) return NULL; @@ -1373,19 +1362,19 @@ e_modapi_init(E_Module *m) /* if (e_comp->comp_type != E_PIXMAP_TYPE_WL) return NULL; */ /* try to get the compositor data */ - if (!(cdata = e_comp->wl_comp_data)) return NULL; + if (!e_comp->wl_comp_data) return NULL; /* try to create global shell interface */ - if (!wl_global_create(cdata->wl.disp, &wl_shell_interface, 1, - cdata, _e_shell_cb_bind)) + if (!wl_global_create(e_comp->wl_comp_data->wl.disp, &wl_shell_interface, 1, + e_comp->wl_comp_data, _e_shell_cb_bind)) { ERR("Could not create shell global: %m"); return NULL; } /* try to create global xdg_shell interface */ - if (!wl_global_create(cdata->wl.disp, &xdg_shell_interface, 1, - cdata, _e_xdg_shell_cb_bind)) + if (!wl_global_create(e_comp->wl_comp_data->wl.disp, &xdg_shell_interface, 1, + e_comp->wl_comp_data, _e_xdg_shell_cb_bind)) { ERR("Could not create xdg_shell global: %m"); return NULL;