From d33b27af9ee76546c97c55abbaf6326b2431c2d6 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Thu, 1 Oct 2015 10:23:28 -0400 Subject: [PATCH 1/7] elementary: Use ecore_wl2 library for elementary Signed-off-by: Chris Michael --- legacy/elementary/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/elementary/configure.ac b/legacy/elementary/configure.ac index 1c883581cd..1271665b88 100644 --- a/legacy/elementary/configure.ac +++ b/legacy/elementary/configure.ac @@ -247,7 +247,7 @@ ELM_CHECK_BACKEND([PSL1GHT]) ELM_CHECK_BACKEND([SDL]) ELM_CHECK_BACKEND([Cocoa]) ELM_CHECK_BACKEND([Win32]) -ELM_CHECK_BACKEND([Wayland]) +ELM_CHECK_BACKEND([Wl2]) ELM_CHECK_BACKEND([DRM]) ELM_CHECK_OPTION([elocation], [0.1.0]) From b3af99a3ea37cf9a824567149c64031e618ffb76 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Thu, 1 Oct 2015 10:23:55 -0400 Subject: [PATCH 2/7] elementary: Include header for Ecore_Wl2 and add external display variable Signed-off-by: Chris Michael --- legacy/elementary/src/lib/elm_priv.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/legacy/elementary/src/lib/elm_priv.h b/legacy/elementary/src/lib/elm_priv.h index be92f1513d..e783e44ced 100644 --- a/legacy/elementary/src/lib/elm_priv.h +++ b/legacy/elementary/src/lib/elm_priv.h @@ -6,8 +6,8 @@ #ifdef HAVE_ELEMENTARY_FB #include #endif -#ifdef HAVE_ELEMENTARY_WAYLAND -#include +#ifdef HAVE_ELEMENTARY_WL2 +#include #endif #ifdef HAVE_ELEMENTARY_DRM #include @@ -559,6 +559,10 @@ extern const char SIG_WIDGET_ACCESS_CHANGED[]; extern const char SIG_LAYOUT_FOCUSED[]; extern const char SIG_LAYOUT_UNFOCUSED[]; +#ifdef HAVE_ELEMENTARY_WL2 +extern Ecore_Wl2_Display *_elm_wl_display; +#endif + #ifdef ENABLE_NLS /* Our gettext wrapper, used to disable translation of elm if the app * is not translated. */ From 67033e85ba640dd46d0e6735fdfc3afca1c20e63 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Thu, 1 Oct 2015 10:24:43 -0400 Subject: [PATCH 3/7] elementary: Port elementary cursor code to use ecore_wl2 library Signed-off-by: Chris Michael --- legacy/elementary/src/lib/els_cursor.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/legacy/elementary/src/lib/els_cursor.c b/legacy/elementary/src/lib/els_cursor.c index 4e6a44327f..ac6ede2566 100644 --- a/legacy/elementary/src/lib/els_cursor.c +++ b/legacy/elementary/src/lib/els_cursor.c @@ -146,9 +146,9 @@ struct _Elm_Cursor Ecore_X_Window win; } x; #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 struct { - Ecore_Wl_Window *win; + Ecore_Wl2_Window *win; } wl; #endif @@ -282,9 +282,9 @@ _elm_cursor_set(Elm_Cursor *cur) if (cur->x.win) ecore_x_window_cursor_set(cur->x.win, cur->x.cursor); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (cur->wl.win) - ecore_wl_window_cursor_from_name_set(cur->wl.win, cur->cursor_name); + ecore_wl2_window_cursor_from_name_set(cur->wl.win, cur->cursor_name); #endif } evas_event_thaw(cur->evas); @@ -340,9 +340,9 @@ _elm_cursor_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_ if (cur->x.win) ecore_x_window_cursor_set(cur->x.win, ECORE_X_CURSOR_X); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (cur->wl.win) - ecore_wl_window_cursor_default_restore(cur->wl.win); + ecore_wl2_window_cursor_from_name_set(cur->wl.win, NULL); #endif } evas_event_thaw(cur->evas); @@ -418,7 +418,7 @@ _elm_cursor_cur_set(Elm_Cursor *cur) cur->x.cursor = ecore_x_cursor_shape_get(cur_id->id); } #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 cur->wl.win = elm_win_wl_window_get(top); #endif } @@ -541,9 +541,9 @@ elm_object_cursor_unset(Evas_Object *obj) else if (cur->x.win) ecore_x_window_cursor_set(cur->x.win, ECORE_X_CURSOR_X); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 else if (cur->wl.win) - ecore_wl_window_cursor_default_restore(cur->wl.win); + ecore_wl2_window_cursor_from_name_set(cur->wl.win, NULL); #endif } From 7e1ca56236f67a1281315c837c612532f41f643c Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Thu, 1 Oct 2015 10:25:23 -0400 Subject: [PATCH 4/7] elementary: Port elementary window code to use Ecore_Wl2 Signed-off-by: Chris Michael --- legacy/elementary/src/lib/elm_win.c | 125 +++++++++++---------- legacy/elementary/src/lib/elm_win.eo | 4 +- legacy/elementary/src/lib/elm_win_legacy.h | 2 +- 3 files changed, 68 insertions(+), 63 deletions(-) diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index b9f78dad6e..6de610ca97 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -111,10 +111,10 @@ struct _Elm_Win_Data Ecore_Event_Handler *property_handler; } x; #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 struct { - Ecore_Wl_Window *win; + Ecore_Wl2_Window *win; Eina_Bool opaque_dirty : 1; } wl; #endif @@ -349,7 +349,7 @@ _win_noblank_eval(void) if (noblanks > 0) ecore_x_screensaver_suspend(); else ecore_x_screensaver_resume(); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 // XXX: no wl implementation of this yet - maybe higher up at prop level #endif } @@ -1246,7 +1246,7 @@ _elm_win_profile_update(Elm_Win_Data *sd) eo_do(sd->obj, eo_event_callback_call(ELM_WIN_EVENT_PROFILE_CHANGED, NULL)); } -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 static void _elm_win_opaque_update(Elm_Win_Data *sd) { @@ -1255,15 +1255,17 @@ _elm_win_opaque_update(Elm_Win_Data *sd) if (sd->fullscreen) { ecore_evas_geometry_get(sd->ee, NULL, NULL, &ow, &oh); - ecore_wl_window_opaque_region_set(sd->wl.win, 0, 0, ow, oh); - ecore_wl_window_update_location(sd->wl.win, 0, 0); + ecore_wl2_window_opaque_region_set(sd->wl.win, 0, 0, ow, oh); + /* TODO */ + /* ecore_wl_window_update_location(sd->wl.win, 0, 0); */ return; } edje_object_part_geometry_get(sd->frame_obj, "elm.spacer.opaque", &ox, &oy, &ow, &oh); - ecore_wl_window_opaque_region_set(sd->wl.win, ox, oy, ow, oh); - ecore_wl_window_update_location(sd->wl.win, ox, oy); + ecore_wl2_window_opaque_region_set(sd->wl.win, ox, oy, ow, oh); + /* TODO */ + /* ecore_wl_window_update_location(sd->wl.win, ox, oy); */ } #endif @@ -1273,7 +1275,7 @@ _elm_win_frame_obj_update(Elm_Win_Data *sd) int fx, fy, fw, fh; int ox, oy, ow, oh; -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 sd->wl.opaque_dirty = 1; #endif if (sd->fullscreen) @@ -2052,8 +2054,9 @@ _elm_win_evas_object_smart_move(Eo *obj, Elm_Win_Data *sd, Evas_Coord x, Evas_Co } if (sd->frame_obj) { -#ifdef HAVE_ELEMENTARY_WAYLAND - ecore_wl_window_update_location(sd->wl.win, x, y); +#ifdef HAVE_ELEMENTARY_WL2 + /* TODO */ + /* ecore_wl_window_update_location(sd->wl.win, x, y); */ #endif sd->screen.x = x; sd->screen.y = y; @@ -2145,10 +2148,10 @@ _internal_elm_win_xwindow_get(Elm_Win_Data *sd) } #endif -Ecore_Wl_Window * +Ecore_Wl2_Window * _elm_ee_wlwin_get(const Ecore_Evas *ee) { -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 const char *engine_name; if (!ee) return NULL; @@ -2159,7 +2162,7 @@ _elm_ee_wlwin_get(const Ecore_Evas *ee) if ((!strcmp(engine_name, ELM_WAYLAND_SHM)) || (!strcmp(engine_name, ELM_WAYLAND_EGL))) { - return ecore_evas_wayland_window_get(ee); + return ecore_evas_wayland_window_get2(ee); } #else (void)ee; @@ -2167,7 +2170,7 @@ _elm_ee_wlwin_get(const Ecore_Evas *ee) return NULL; } -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 static void _elm_win_wlwindow_get(Elm_Win_Data *sd) { @@ -2657,11 +2660,11 @@ _elm_win_frame_cb_move_start(void *data, if (!sd) return; -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (!strcmp(source, "elm")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_HAND1); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_HAND1); else - ecore_wl_window_cursor_default_restore(sd->wl.win); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); #else (void)source; #endif @@ -2687,12 +2690,12 @@ _elm_win_frame_cb_move_stop(void *data, if (!sd) return; -#ifdef HAVE_ELEMENTARY_WAYLAND - ecore_wl_window_cursor_default_restore(sd->wl.win); +#ifdef HAVE_ELEMENTARY_WL2 + ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); #endif } -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 struct _resize_info { const char *name; @@ -2755,35 +2758,35 @@ _elm_win_frame_cb_resize_show(void *data, if (!sd) return; if (sd->resizing) return; -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 int i; i = sd->rot / 90; if (!strcmp(source, "elm.event.resize.t")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_side[(0 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(0 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.b")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_side[(2 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(2 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.l")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_side[(1 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(1 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.r")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_side[(3 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(3 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.tl")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_corner[(0 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_corner[(0 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.tr")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_corner[(3 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_corner[(3 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.bl")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_corner[(1 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_corner[(1 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.br")) - ecore_wl_window_cursor_from_name_set(sd->wl.win, - _border_corner[(2 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_corner[(2 + i) % 4].name); else - ecore_wl_window_cursor_default_restore(sd->wl.win); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); #else (void)source; #endif @@ -2800,8 +2803,8 @@ _elm_win_frame_cb_resize_hide(void *data, if (!sd) return; if (sd->resizing) return; -#ifdef HAVE_ELEMENTARY_WAYLAND - ecore_wl_window_cursor_default_restore(sd->wl.win); +#ifdef HAVE_ELEMENTARY_WL2 + ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); #endif } @@ -2811,7 +2814,7 @@ _elm_win_frame_cb_resize_start(void *data, const char *sig EINA_UNUSED, const char *source) { -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 ELM_WIN_DATA_GET(data, sd); int i; @@ -2914,7 +2917,7 @@ _elm_win_frame_cb_close(void *data, evas_object_unref(win); } -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 static void _elm_win_frame_pre_render(void *data, Evas *e EINA_UNUSED, void *ev EINA_UNUSED) { @@ -2974,7 +2977,7 @@ _elm_win_frame_add(Elm_Win_Data *sd, (sd->frame_obj, EVAS_CALLBACK_MOVE, _elm_win_frame_obj_move, sd); evas_object_event_callback_add (sd->frame_obj, EVAS_CALLBACK_RESIZE, _elm_win_frame_obj_resize, sd); -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 evas_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_PRE, _elm_win_frame_pre_render, sd); #endif @@ -3032,7 +3035,7 @@ _elm_win_frame_del(Elm_Win_Data *sd) (sd->frame_obj, EVAS_CALLBACK_MOVE, _elm_win_frame_obj_move, sd); evas_object_event_callback_del_full (sd->frame_obj, EVAS_CALLBACK_RESIZE, _elm_win_frame_obj_resize, sd); -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 evas_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_PRE, _elm_win_frame_pre_render, sd); #endif @@ -3392,7 +3395,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ } #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 else if ((disp) && (!strcmp(disp, "wl"))) { if (_accel_is_gl()) @@ -3473,7 +3476,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ } } #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 else if (!_elm_preferred_engine && getenv("WAYLAND_DISPLAY") && !getenv("ELM_ENGINE")) { @@ -3500,7 +3503,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ #ifdef HAVE_ELEMENTARY_X enginelist[p++] = ELM_OPENGL_X11; #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 enginelist[p++] = ELM_WAYLAND_EGL; #endif #ifdef HAVE_ELEMENTARY_DRM @@ -3518,7 +3521,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ #ifdef HAVE_ELEMENTARY_X enginelist[p++] = ELM_SOFTWARE_X11; #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 enginelist[p++] = ELM_WAYLAND_SHM; #endif #ifdef HAVE_ELEMENTARY_WIN32 @@ -3545,7 +3548,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ #ifdef HAVE_ELEMENTARY_X enginelist[p++] = ELM_SOFTWARE_X11; #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 enginelist[p++] = ELM_WAYLAND_SHM; #endif #ifdef HAVE_ELEMENTARY_DRM @@ -3567,7 +3570,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ #ifdef HAVE_ELEMENTARY_X enginelist[p++] = ELM_OPENGL_X11; #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 enginelist[p++] = ELM_WAYLAND_EGL; #endif #ifdef HAVE_ELEMENTARY_DRM @@ -3714,7 +3717,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ } #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 _elm_win_wlwindow_get(sd); #endif @@ -5384,7 +5387,7 @@ _elm_win_xwindow_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd) return 0; } -EAPI Ecore_Wl_Window * +EAPI Ecore_Wl2_Window * elm_win_wl_window_get(const Evas_Object *obj) { ELM_WIN_CHECK(obj) NULL; @@ -5402,15 +5405,15 @@ elm_win_wl_window_get(const Evas_Object *obj) return _elm_ee_wlwin_get(ee); } - Ecore_Wl_Window *ret = NULL; + Ecore_Wl2_Window *ret = NULL; eo_do((Eo *) obj, ret = elm_obj_win_wl_window_get()); return ret; } -EOLIAN static Ecore_Wl_Window* +EOLIAN static Ecore_Wl2_Window* _elm_win_wl_window_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd) { -#if HAVE_ELEMENTARY_WAYLAND +#if HAVE_ELEMENTARY_WL2 if (sd->wl.win) return sd->wl.win; if (sd->parent) return elm_win_wl_window_get(sd->parent); #else @@ -5476,14 +5479,16 @@ _elm_win_window_id_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd) ((!strcmp(engine_name, ELM_WAYLAND_SHM)) || (!strcmp(engine_name, ELM_WAYLAND_EGL))))) { -#if HAVE_ELEMENTARY_WAYLAND - if (sd->wl.win) return (Ecore_Window)ecore_wl_window_surface_id_get(sd->wl.win); +#if HAVE_ELEMENTARY_WL2 + if (sd->wl.win) + return (Ecore_Window)ecore_wl2_window_surface_id_get(sd->wl.win); if (sd->parent) { - Ecore_Wl_Window *parent; + Ecore_Wl2_Window *parent; parent = elm_win_wl_window_get(sd->parent); - if (parent) return (Ecore_Window)ecore_wl_window_surface_id_get(parent); + if (parent) + return (Ecore_Window)ecore_wl2_window_surface_id_get(parent); return 0; } #endif diff --git a/legacy/elementary/src/lib/elm_win.eo b/legacy/elementary/src/lib/elm_win.eo index 45410bb1aa..c48ff3822c 100644 --- a/legacy/elementary/src/lib/elm_win.eo +++ b/legacy/elementary/src/lib/elm_win.eo @@ -956,8 +956,8 @@ class Elm.Win (Elm.Widget, Elm_Interface_Atspi_Window, } @property wl_window { get { - [[Get the Ecore_Wl_Window of an Evas_Object.]] - return: Ecore_Wl_Window *; [[The Ecore_Wl_Window of $obj.]] + [[Get the Ecore_Wl2_Window of an Evas_Object.]] + return: Ecore_Wl2_Window *; [[The Ecore_Wl2_Window of $obj.]] legacy: null; } } diff --git a/legacy/elementary/src/lib/elm_win_legacy.h b/legacy/elementary/src/lib/elm_win_legacy.h index 883b3756d3..22b0fec111 100644 --- a/legacy/elementary/src/lib/elm_win_legacy.h +++ b/legacy/elementary/src/lib/elm_win_legacy.h @@ -195,7 +195,7 @@ EAPI void elm_win_render(Evas_Object *obj); * * @ingroup Win */ -EAPI Ecore_Wl_Window *elm_win_wl_window_get(const Evas_Object *obj); +EAPI Ecore_Wl2_Window *elm_win_wl_window_get(const Evas_Object *obj); /** * Set the preferred rotation value. From 7519a39736fb8e3bf3f1d7da070a6a2a5d64c111 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Thu, 1 Oct 2015 10:25:38 -0400 Subject: [PATCH 5/7] elementary: Port elementary copy/paste code to use Ecore_Wl2 library Signed-off-by: Chris Michael --- legacy/elementary/src/lib/elm_cnp.c | 182 ++++++++++++++++------------ 1 file changed, 106 insertions(+), 76 deletions(-) diff --git a/legacy/elementary/src/lib/elm_cnp.c b/legacy/elementary/src/lib/elm_cnp.c index 070105746a..55cf376c65 100644 --- a/legacy/elementary/src/lib/elm_cnp.c +++ b/legacy/elementary/src/lib/elm_cnp.c @@ -2309,7 +2309,7 @@ _x11_elm_selection_selection_has_owner(Evas_Object *obj EINA_UNUSED) #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 typedef struct _Wl_Cnp_Selection Wl_Cnp_Selection; struct _Wl_Cnp_Selection @@ -2329,7 +2329,7 @@ struct _Wl_Cnp_Selection void *loss_data; Elm_Sel_Format format; - Ecore_Wl_Window *win; + Ecore_Wl2_Window *win; Elm_Xdnd_Action action; Eina_Bool active : 1; @@ -2376,7 +2376,7 @@ static Dropable *_wl_dropable_find(unsigned int win); static void _wl_dropable_handle(Dropable *drop, Evas_Coord x, Evas_Coord y); static void _wl_dropable_all_clean(unsigned int win); static Eina_Bool _wl_drops_accept(const char *type); -static unsigned int _wl_elm_widget_window_get(const Evas_Object *obj); +static Ecore_Wl2_Window *_wl_elm_widget_window_get(const Evas_Object *obj); static Evas * _wl_evas_get_from_win(unsigned int win); static void @@ -2397,7 +2397,7 @@ _wl_sel_obj_del2(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_ static Eina_Bool _wl_elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type selection, Elm_Sel_Format format, const void *selbuf, size_t buflen) { - Ecore_Wl_Window *win; + Ecore_Wl2_Window *win; Wl_Cnp_Selection *sel = &wl_cnp_selection; if ((!selbuf) && (format != ELM_SEL_FORMAT_IMAGE)) @@ -2408,7 +2408,7 @@ _wl_elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type selection, Elm_Sel_Form _wl_elm_cnp_init(); - win = elm_win_wl_window_get(obj); + win = _wl_elm_widget_window_get(obj); if (sel->loss_cb) sel->loss_cb(sel->loss_data, selection); @@ -2465,7 +2465,7 @@ _wl_elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type selection, Elm_Sel_Form if (i < 0) return EINA_FALSE; - ecore_wl_dnd_selection_set(ecore_wl_input_get(), types); + ecore_wl2_dnd_selection_set(ecore_wl2_window_input_get(win), types); free(sel->selbuf); sel->buflen = buflen; @@ -2483,12 +2483,12 @@ _wl_elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type selection, Elm_Sel_Form static Eina_Bool _wl_elm_cnp_selection_get(const Evas_Object *obj, Elm_Sel_Type selection, Elm_Sel_Format format, Elm_Drop_Cb datacb, void *udata) { - Ecore_Wl_Window *win; + Ecore_Wl2_Window *win; Wl_Cnp_Selection *sel = &wl_cnp_selection; _wl_elm_cnp_init(); - win = elm_win_wl_window_get(obj); + win = _wl_elm_widget_window_get(obj); if (sel->requestwidget) evas_object_event_callback_del_full(sel->requestwidget, @@ -2528,7 +2528,7 @@ _wl_elm_cnp_selection_get(const Evas_Object *obj, Elm_Sel_Type selection, Elm_Se if (i < 0) return EINA_FALSE; - ecore_wl_dnd_selection_get(ecore_wl_input_get(), *types); + ecore_wl2_dnd_selection_get(ecore_wl2_window_input_get(win), *types); } return EINA_TRUE; @@ -2573,7 +2573,7 @@ _wl_elm_cnp_selection_clear(Evas_Object *obj, Elm_Sel_Type selection EINA_UNUSED ELM_SAFE_FREE(sel->selbuf, free); sel->buflen = 0; /* sel->clear(); */ - ecore_wl_dnd_selection_clear(ecore_wl_input_get()); + ecore_wl2_dnd_selection_clear(ecore_wl2_window_input_get(_wl_elm_widget_window_get(obj))); return EINA_TRUE; } @@ -2585,7 +2585,7 @@ _wl_selection_send(void *udata, int type EINA_UNUSED, void *event) int ret, len_remained; int len_written = 0; Wl_Cnp_Selection *sel = udata; - Ecore_Wl_Event_Data_Source_Send *ev = event; + Ecore_Wl2_Event_Data_Source_Send *ev = event; _wl_elm_cnp_init(); @@ -2609,7 +2609,7 @@ static Eina_Bool _wl_selection_receive(void *udata, int type EINA_UNUSED, void *event) { Wl_Cnp_Selection *sel = udata; - Ecore_Wl_Event_Selection_Data_Ready *ev = event; + Ecore_Wl2_Event_Selection_Data_Ready *ev = event; _wl_elm_cnp_init(); @@ -2700,9 +2700,9 @@ _wl_elm_cnp_init(void) if (_init_count > 0) return EINA_TRUE; _init_count++; - ecore_event_handler_add(ECORE_WL_EVENT_DATA_SOURCE_SEND, + ecore_event_handler_add(ECORE_WL2_EVENT_DATA_SOURCE_SEND, _wl_selection_send, &wl_cnp_selection); - ecore_event_handler_add(ECORE_WL_EVENT_SELECTION_DATA_READY, + ecore_event_handler_add(ECORE_WL2_EVENT_SELECTION_DATA_READY, _wl_selection_receive, &wl_cnp_selection); return EINA_TRUE; @@ -2718,12 +2718,12 @@ _wl_elm_dnd_init(void) text_uri = eina_stringshare_add("text/uri-list"); - ecore_event_handler_add(ECORE_WL_EVENT_DATA_SOURCE_SEND, + ecore_event_handler_add(ECORE_WL2_EVENT_DATA_SOURCE_SEND, _wl_dnd_send, &wl_cnp_selection); - ecore_event_handler_add(ECORE_WL_EVENT_SELECTION_DATA_READY, + ecore_event_handler_add(ECORE_WL2_EVENT_SELECTION_DATA_READY, _wl_dnd_receive, &wl_cnp_selection); - ecore_event_handler_add(ECORE_WL_EVENT_DND_END, + ecore_event_handler_add(ECORE_WL2_EVENT_DND_END, _wl_dnd_end, &wl_cnp_selection); return EINA_TRUE; @@ -2769,16 +2769,16 @@ _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State if (first) { handler_enter = - ecore_event_handler_add(ECORE_WL_EVENT_DND_ENTER, + ecore_event_handler_add(ECORE_WL2_EVENT_DND_ENTER, _wl_dnd_enter, NULL); handler_leave = - ecore_event_handler_add(ECORE_WL_EVENT_DND_LEAVE, + ecore_event_handler_add(ECORE_WL2_EVENT_DND_LEAVE, _wl_dnd_leave, NULL); handler_pos = - ecore_event_handler_add(ECORE_WL_EVENT_DND_POSITION, + ecore_event_handler_add(ECORE_WL2_EVENT_DND_MOTION, _wl_dnd_position, NULL); handler_drop = - ecore_event_handler_add(ECORE_WL_EVENT_DND_DROP, + ecore_event_handler_add(ECORE_WL2_EVENT_DND_DROP, _wl_dnd_drop, NULL); _wl_elm_dnd_init(); } @@ -2838,7 +2838,7 @@ _wl_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, int x, y, x2 = 0, y2 = 0, x3, y3, w = 0, h = 0; const char *types[CNP_N_ATOMS + 1]; int i, nb_types = 0; - Ecore_Wl_Window *parent = NULL; + Ecore_Wl2_Window *parent = NULL, *win; _wl_elm_dnd_init(); @@ -2854,7 +2854,9 @@ _wl_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, } } types[nb_types] = NULL; - ecore_wl_dnd_drag_types_set(ecore_wl_input_get(), types); + + win = _wl_elm_widget_window_get(obj); + ecore_wl2_dnd_drag_types_set(ecore_wl2_window_input_get(win), types); /* set the drag data used when a drop occurs */ free(wl_cnp_selection.selbuf); @@ -2879,8 +2881,9 @@ _wl_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, elm_win_borderless_set(dragwin, EINA_TRUE); elm_win_override_set(dragwin, EINA_TRUE); - ecore_wl_window_type_set(elm_win_wl_window_get(dragwin), - ECORE_WL_WINDOW_TYPE_DND); + win = elm_win_wl_window_get(dragwin); + + ecore_wl2_window_type_set(win, ECORE_WL2_WINDOW_TYPE_DND); if (createicon) { @@ -2938,12 +2941,10 @@ _wl_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, if (!(ee = ecore_evas_ecore_evas_get(evas))) return EINA_FALSE; - parent = ecore_evas_wayland_window_get(ee); + parent = ecore_evas_wayland_window_get2(ee); } - ecore_wl_dnd_drag_start(ecore_wl_input_get(), parent, - elm_win_wl_window_get(dragwin), - x3, y3, w, h); + ecore_wl2_dnd_drag_start(ecore_wl2_window_input_get(win), parent, win); return EINA_TRUE; } @@ -2958,7 +2959,7 @@ _wl_drag_source_del(void *data EINA_UNUSED, Evas *evas EINA_UNUSED, Evas_Object static Eina_Bool _wl_dnd_enter(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { - Ecore_Wl_Event_Dnd_Enter *ev; + Ecore_Wl2_Event_Dnd_Enter *ev; int i = 0; ev = event; @@ -2996,7 +2997,7 @@ _wl_dnd_enter(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) static Eina_Bool _wl_dnd_leave(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { - Ecore_Wl_Event_Dnd_Leave *ev; + Ecore_Wl2_Event_Dnd_Leave *ev; Dropable *drop; cnp_debug("In\n"); @@ -3013,16 +3014,16 @@ _wl_dnd_leave(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) static Eina_Bool _wl_dnd_position(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { - Ecore_Wl_Event_Dnd_Position *ev; + Ecore_Wl2_Event_Dnd_Motion *ev; Dropable *drop; Eina_Bool will_accept = EINA_FALSE; ev = event; - cnp_debug("mouse pos %i %i\n", ev->position.x, ev->position.y); + cnp_debug("mouse pos %i %i\n", ev->x, ev->y); - dragwin_x_end = ev->position.x - _dragx; - dragwin_y_end = ev->position.y - _dragy; + dragwin_x_end = ev->x - _dragx; + dragwin_y_end = ev->y - _dragy; drop = _wl_dropable_find(ev->win); @@ -3030,8 +3031,8 @@ _wl_dnd_position(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { Evas_Coord x = 0, y = 0; - x = ev->position.x; - y = ev->position.y; + x = ev->x; + y = ev->y; _dropable_coords_adjust(drop, &x, &y); Evas *evas = _wl_evas_get_from_win(ev->win); @@ -3113,14 +3114,15 @@ _wl_dnd_position(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) static Eina_Bool _wl_dnd_drop(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { - Ecore_Wl_Event_Dnd_Drop *ev; + Ecore_Wl2_Event_Dnd_Drop *ev; + Ecore_Wl2_Window *win; Dropable *drop; Eina_List *l; cnp_debug("In\n"); ev = event; - savedtypes.x = ev->position.x; - savedtypes.y = ev->position.y; + savedtypes.x = ev->x; + savedtypes.y = ev->y; EINA_LIST_FOREACH(drops, l, drop) { @@ -3132,12 +3134,16 @@ _wl_dnd_drop(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) EVAS_CALLBACK_DEL, _wl_sel_obj_del2, &wl_cnp_selection); - ecore_wl_dnd_drag_get(ecore_wl_input_get(), drop->last.type); + + win = _wl_elm_widget_window_get(drop->obj); + ecore_wl2_dnd_drag_get(ecore_wl2_window_input_get(win), + drop->last.type); return ECORE_CALLBACK_PASS_ON; } } - ecore_wl_dnd_drag_end(ecore_wl_input_get()); + win = ecore_wl2_display_window_find(_elm_wl_display, ev->win); + ecore_wl2_dnd_drag_end(ecore_wl2_window_input_get(win)); return ECORE_CALLBACK_PASS_ON; } @@ -3148,7 +3154,7 @@ _wl_dnd_send(void *data, int type EINA_UNUSED, void *event) int ret, len_remained; int len_written = 0; Wl_Cnp_Selection *sel; - Ecore_Wl_Event_Data_Source_Send *ev; + Ecore_Wl2_Event_Data_Source_Send *ev; cnp_debug("In\n"); ev = event; @@ -3174,7 +3180,7 @@ static Eina_Bool _wl_dnd_receive(void *data, int type EINA_UNUSED, void *event) { Wl_Cnp_Selection *sel; - Ecore_Wl_Event_Selection_Data_Ready *ev; + Ecore_Wl2_Event_Selection_Data_Ready *ev; cnp_debug("In\n"); ev = event; @@ -3199,10 +3205,12 @@ _wl_dnd_receive(void *data, int type EINA_UNUSED, void *event) static Eina_Bool _wl_dnd_end(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) { - cnp_debug("In\n"); - /* Ecore_Wl_Event_Dnd_End *ev; */ + Ecore_Wl2_Event_Dnd_End *ev; + Ecore_Wl2_Window *win; - /* ev = event; */ + cnp_debug("In\n"); + + ev = event; if (dragdonecb) dragdonecb(dragdonedata, dragwidget); @@ -3229,7 +3237,8 @@ _wl_dnd_end(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSE dragwidget = NULL; doaccept = EINA_FALSE; - ecore_wl_input_ungrab(ecore_wl_input_get()); + win = ecore_wl2_display_window_find(_elm_wl_display, ev->win); + ecore_wl2_input_ungrab(ecore_wl2_window_input_get(win)); return ECORE_CALLBACK_PASS_ON; } @@ -3243,17 +3252,21 @@ _wl_dropable_match(Dropable_Cbs *cbs, Dropable *drop, Elm_Sel_Format fmt) static void _wl_dropable_data_handle(Wl_Cnp_Selection *sel, char *data, size_t size) { - cnp_debug("In\n"); Dropable *drop; Elm_Selection_Data sdata; + Ecore_Wl2_Window *win; char *s; + cnp_debug("In\n"); + sdata.action = ELM_XDND_ACTION_COPY; sdata.len = size; sdata.x = savedtypes.x; sdata.y = savedtypes.y; + win = _wl_elm_widget_window_get(sel->requestwidget); + eo_do(sel->requestwidget, drop = eo_key_data_get("__elm_dropable")); if (drop) { @@ -3267,7 +3280,7 @@ _wl_dropable_data_handle(Wl_Cnp_Selection *sel, char *data, size_t size) savedtypes.textreq || _wl_dropable_match(cbs, drop, ELM_SEL_FORMAT_TEXT)); if (!s) { - ecore_wl_dnd_drag_end(ecore_wl_input_get()); + ecore_wl2_dnd_drag_end(ecore_wl2_window_input_get(win)); return; } @@ -3287,7 +3300,8 @@ _wl_dropable_data_handle(Wl_Cnp_Selection *sel, char *data, size_t size) } } } - ecore_wl_dnd_drag_end(ecore_wl_input_get()); + + ecore_wl2_dnd_drag_end(ecore_wl2_window_input_get(win)); savedtypes.textreq = 0; } @@ -3296,11 +3310,17 @@ _wl_dropable_find(unsigned int win) { Eina_List *l; Dropable *dropable; + Ecore_Wl2_Window *window; if (!drops) return NULL; + + window = ecore_wl2_display_window_find(_elm_wl_display, win); + if (!window) return NULL; + EINA_LIST_FOREACH(drops, l, dropable) - if (_wl_elm_widget_window_get(dropable->obj) == win) + if (_wl_elm_widget_window_get(dropable->obj) == window) return dropable; + return NULL; } @@ -3362,10 +3382,14 @@ _wl_dropable_all_clean(unsigned int win) { Eina_List *l; Dropable *dropable; + Ecore_Wl2_Window *window; + + window = ecore_wl2_display_window_find(_elm_wl_display, win); + if (!window) return; EINA_LIST_FOREACH(drops, l, dropable) { - if (_wl_elm_widget_window_get(dropable->obj) == win) + if (_wl_elm_widget_window_get(dropable->obj) == window) { dropable->last.x = 0; dropable->last.y = 0; @@ -3413,11 +3437,11 @@ _wl_drops_accept(const char *type) return will_accept; } -static unsigned int +static Ecore_Wl2_Window * _wl_elm_widget_window_get(const Evas_Object *obj) { Evas_Object *top; - Ecore_Wl_Window *win = NULL; + Ecore_Wl2_Window *win = NULL; if (elm_widget_is(obj)) { @@ -3433,26 +3457,26 @@ _wl_elm_widget_window_get(const Evas_Object *obj) const char *engine_name; if (!(evas = evas_object_evas_get(obj))) - return 0; + return NULL; if (!(ee = ecore_evas_ecore_evas_get(evas))) - return 0; + return NULL; engine_name = ecore_evas_engine_name_get(ee); if (!strcmp(engine_name, ELM_BUFFER)) { ee = ecore_evas_buffer_ecore_evas_parent_get(ee); - if (!ee) return 0; - win = ecore_evas_wayland_window_get(ee); + if (!ee) return NULL; + win = ecore_evas_wayland_window_get2(ee); } else if (!strncmp(engine_name, "wayland", sizeof("wayland") - 1)) { /* In case the engine is not a buffer, we want to check once. */ - win = ecore_evas_wayland_window_get(ee); - if (!win) return 0; + win = ecore_evas_wayland_window_get2(ee); + if (!win) return NULL; } } - return ecore_wl_window_id_get(win); + return win; } #endif @@ -3832,7 +3856,7 @@ elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type selection, if (xwin) return _x11_elm_cnp_selection_set(xwin, obj, selection, format, selbuf, buflen); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) return _wl_elm_cnp_selection_set(obj, selection, format, selbuf, buflen); #endif @@ -3850,7 +3874,7 @@ elm_cnp_selection_loss_callback_set(Evas_Object *obj, Elm_Sel_Type selection, if (_x11_elm_widget_xwin_get(obj)) _x11_elm_cnp_selection_loss_callback_set(obj, selection, func, data); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) _wl_elm_cnp_selection_loss_callback_set(obj, selection, func, data); #endif @@ -3866,7 +3890,7 @@ elm_object_cnp_selection_clear(Evas_Object *obj, Elm_Sel_Type selection) if (_x11_elm_widget_xwin_get(obj)) return _x11_elm_object_cnp_selection_clear(obj, selection); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) return _wl_elm_cnp_selection_clear(obj, selection); #endif @@ -3884,7 +3908,7 @@ elm_cnp_selection_get(const Evas_Object *obj, Elm_Sel_Type selection, if (xwin) return _x11_elm_cnp_selection_get(xwin, obj, selection, format, datacb, udata); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) return _wl_elm_cnp_selection_get(obj, selection, format, datacb, udata); #endif @@ -3910,7 +3934,7 @@ elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, leavecb, leavedata, poscb, posdata, dropcb, dropdata); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) return _wl_elm_drop_target_add(obj, format, entercb, enterdata, leavecb, leavedata, poscb, posdata, @@ -3934,7 +3958,7 @@ elm_drop_target_del(Evas_Object *obj, Elm_Sel_Format format, return _x11_elm_drop_target_del(obj, format, entercb, enterdata, leavecb, leavedata, poscb, posdata, dropcb, dropdata); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) return _wl_elm_drop_target_del(obj, format, entercb, enterdata, leavecb, leavedata, poscb, posdata, dropcb, dropdata); @@ -3967,7 +3991,7 @@ elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, acceptcb, acceptdata, dragdone, donecbdata); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) return _wl_elm_drag_start(obj, format, data, action, createicon, createdata, @@ -3990,7 +4014,7 @@ elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action action) if (_x11_elm_widget_xwin_get(obj)) return _x11_elm_drag_action_set(obj, action); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 if (_wl_elm_widget_window_get(obj)) return _wl_elm_drag_action_set(obj, action); #endif @@ -4005,9 +4029,12 @@ elm_selection_selection_has_owner(Evas_Object *obj) if (_x11_elm_widget_xwin_get(obj)) return _x11_elm_selection_selection_has_owner(obj); #endif -#ifdef HAVE_ELEMENTARY_WAYLAND - if (_wl_elm_widget_window_get(obj)) - return ecore_wl_dnd_selection_owner_has(ecore_wl_input_get()); +#ifdef HAVE_ELEMENTARY_WL2 + Ecore_Wl2_Window *win; + + win = _wl_elm_widget_window_get(obj); + if (win) + return ecore_wl2_dnd_selection_owner_has(ecore_wl2_window_input_get(win)); #endif return _local_elm_selection_selection_has_owner(obj); } @@ -4491,9 +4518,12 @@ elm_drag_cancel(Evas_Object *obj) goto end; } #endif -#ifdef HAVE_ELEMENTARY_WAYLAND - if (_wl_elm_widget_window_get(obj)) - ecore_wl_dnd_drag_end(ecore_wl_input_get()); +#ifdef HAVE_ELEMENTARY_WL2 + Ecore_Wl2_Window *win; + + win = _wl_elm_widget_window_get(obj); + if (win) + ecore_wl2_dnd_drag_end(ecore_wl2_window_input_get(win)); #endif end: From 436e9e91f8b8f43eabc1610f4997925711aa3d3c Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Thu, 1 Oct 2015 10:25:57 -0400 Subject: [PATCH 6/7] elementary: Port elementary config code to use Ecore_Wl2 library Signed-off-by: Chris Michael --- legacy/elementary/src/lib/elm_config.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/legacy/elementary/src/lib/elm_config.c b/legacy/elementary/src/lib/elm_config.c index 29ef12de69..f64e4262c9 100644 --- a/legacy/elementary/src/lib/elm_config.c +++ b/legacy/elementary/src/lib/elm_config.c @@ -31,6 +31,10 @@ Eio_Monitor *_eio_monitor = NULL; Eina_Hash *_elm_key_bindings = NULL; +#ifdef HAVE_ELEMENTARY_WL2 +Ecore_Wl2_Display *_elm_wl_display = NULL; +#endif + const char *_elm_engines[] = { "software_x11", "fb", @@ -3315,6 +3319,10 @@ _elm_config_sub_shutdown(void) { #ifdef HAVE_ELEMENTARY_X if (ecore_x_display_get()) ecore_x_shutdown(); +#endif +#ifdef HAVE_ELEMENTARY_WL2 + if (_elm_wl_display) ecore_wl2_display_disconnect(_elm_wl_display); + ecore_wl2_shutdown(); #endif ELM_SAFE_FREE(_eio_monitor, eio_monitor_del); ELM_SAFE_FREE(_config_change_delay_timer, ecore_timer_del); @@ -3350,7 +3358,7 @@ _elm_config_file_monitor_cb(void *data EINA_UNUSED, void _elm_config_sub_init(void) { -#if defined(HAVE_ELEMENTARY_X) || defined(HAVE_ELEMENTARY_WAYLAND) +#if defined(HAVE_ELEMENTARY_X) || defined(HAVE_ELEMENTARY_WL2) const char *ev = getenv("ELM_DISPLAY"); #endif @@ -3385,7 +3393,7 @@ _elm_config_sub_init(void) ecore_x_init(NULL); } #endif -#ifdef HAVE_ELEMENTARY_WAYLAND +#ifdef HAVE_ELEMENTARY_WL2 Eina_Bool init_wl = EINA_FALSE; Eina_Bool have_wl_display = !!getenv("WAYLAND_DISPLAY"); @@ -3413,7 +3421,17 @@ _elm_config_sub_init(void) } if (init_wl) { - ecore_wl_init(NULL); + if (!ecore_wl2_init()) + { + ERR("Could not initialize Ecore_Wl2"); + goto end; + } + _elm_wl_display = ecore_wl2_display_connect(NULL); + if (!_elm_wl_display) + { + ERR("Could not connect to Wayland Display"); + goto end; + } } #endif char buf[PATH_MAX]; From bc6184479fe4f146531088f0f578f346b4728b65 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Fri, 9 Oct 2015 11:40:10 -0400 Subject: [PATCH 7/7] elementary: Remove misuse of EINA_UNUSED Signed-off-by: Chris Michael --- legacy/elementary/src/lib/elm_cnp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/elementary/src/lib/elm_cnp.c b/legacy/elementary/src/lib/elm_cnp.c index 55cf376c65..7be51d9241 100644 --- a/legacy/elementary/src/lib/elm_cnp.c +++ b/legacy/elementary/src/lib/elm_cnp.c @@ -3203,7 +3203,7 @@ _wl_dnd_receive(void *data, int type EINA_UNUSED, void *event) } static Eina_Bool -_wl_dnd_end(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) +_wl_dnd_end(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { Ecore_Wl2_Event_Dnd_End *ev; Ecore_Wl2_Window *win;