discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=81adac88dcaafacc171df028272ff4d3dfbb1e70
commit 81adac88dcaafacc171df028272ff4d3dfbb1e70 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Fri Jul 7 16:26:50 2017 -0400 elm_win: manually create a wl2 window for FAKE wins under wayland this enables elm_cnp to function using protocol --- src/lib/elementary/efl_ui_win.c | 20 ++++++++++++++++++++ src/lib/elementary/efl_ui_win.eo | 1 + 2 files changed, 21 insertions(+) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index b763f21bdb..56d9c0cee4 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -5048,6 +5048,16 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W } ecore_wl2_window_type_set(sd->wl.win, wtype); } + else if (sd->type == ELM_WIN_FAKE) + { + const char *env = getenv("WAYLAND_DISPLAY"); + if (env) + { + Ecore_Wl2_Display *d = ecore_wl2_display_connect(env); + sd->wl.win = ecore_wl2_window_new(d, NULL, 0, 0, 1, 1); + ecore_wl2_display_disconnect(d); + } + } #endif #ifdef HAVE_ELEMENTARY_COCOA @@ -5328,6 +5338,16 @@ _efl_ui_win_elm_widget_focus_manager_factory(Eo *obj EINA_UNUSED, Efl_Ui_Win_Dat return manager; } +EOLIAN static void +_efl_ui_win_efl_object_destructor(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *pd) +{ +#ifdef HAVE_ELEMENTARY_WL2 + if (pd->type == ELM_WIN_FAKE) + ecore_wl2_window_free(pd->wl.win); +#endif + efl_destructor(efl_super(obj, MY_CLASS)); +} + EOLIAN static Eo * _efl_ui_win_efl_object_constructor(Eo *obj, Efl_Ui_Win_Data *pd) { diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index f98e0a5285..21de1d4f1e 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -926,6 +926,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Elm.Interface.Atspi.Window, implements { class.constructor; Efl.Object.constructor; + Efl.Object.destructor; Efl.Object.finalize; Efl.Gfx.visible { set; } Efl.Gfx.position { set; } --