devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=f3da55758608f4618fb29ba07a2face461f40397

commit f3da55758608f4618fb29ba07a2face461f40397
Author: Chris Michael <[email protected]>
Date:   Mon Mar 17 09:07:06 2014 +0000

    @bugfix: Fix e_win elm window trapping for wayland-only
    
    Signed-off-by: Chris Michael <[email protected]>
---
 src/bin/e_win.c | 38 ++++++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/src/bin/e_win.c b/src/bin/e_win.c
index 065b8de..3e3e2a1 100644
--- a/src/bin/e_win.c
+++ b/src/bin/e_win.c
@@ -74,15 +74,22 @@ _elm_win_trap_show(void *data, Evas_Object *o)
 {
    Elm_Win_Trap_Ctx *ctx = data;
    EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_TRUE);
-#ifndef HAVE_WAYLAND_ONLY
    if (!ctx->client)
      {
-        Ecore_X_Window xwin = elm_win_xwindow_get(o);
-        E_Client *ec = e_pixmap_find_client(E_PIXMAP_TYPE_X, xwin);
+        E_Client *ec;
+        Ecore_Window win;
+
+#ifndef HAVE_WAYLAND_ONLY
+        win = elm_win_xwindow_get(o);
+        ec = e_pixmap_find_client(E_PIXMAP_TYPE_X, win);
+#else
+        win = elm_win_window_id_get(o);
+        ec = e_pixmap_find_client(E_PIXMAP_TYPE_WL, win);
+#endif
         Evas *e = evas_object_evas_get(o);
         Ecore_Evas *ee = ecore_evas_ecore_evas_get(e);
 
-        ctx->xwin = xwin;
+        ctx->xwin = win;
 
         if (ec)
           ctx->client = ec;
@@ -91,10 +98,22 @@ _elm_win_trap_show(void *data, Evas_Object *o)
              E_Pixmap *cp;
              E_Comp *c = NULL;
 
-             cp = e_pixmap_new(E_PIXMAP_TYPE_X, xwin);
+#ifndef HAVE_WAYLAND_ONLY
+             cp = e_pixmap_new(E_PIXMAP_TYPE_X, win);
+#else
+             cp = e_pixmap_new(E_PIXMAP_TYPE_WL, win);
+#endif
              EINA_SAFETY_ON_NULL_RETURN_VAL(cp, EINA_TRUE);
-             if (eina_list_count(e_comp_list()) > 1)
-               c = e_comp_find_by_window(ecore_x_window_root_get(xwin));
+
+             /* if (eina_list_count(e_comp_list()) > 1) */
+             /*   { */
+/* #ifndef HAVE_WAYLAND_ONLY */
+             /*      c = e_comp_find_by_window(ecore_x_window_root_get(win)); 
*/
+/* #else */
+             /*      c = ; */
+/* #endif */
+             /*   } */
+
              if (!c)
                c = e_comp_get(NULL);
              ctx->client = e_client_new(c, cp, 0, 1);
@@ -104,7 +123,7 @@ _elm_win_trap_show(void *data, Evas_Object *o)
         ctx->client->internal_ecore_evas = ee;
         evas_object_data_set(o, "E_Client", ctx->client);
      }
-#endif
+//#endif
    if (ctx->centered) e_comp_object_util_center(ctx->client->frame);
    evas_object_show(ctx->client->frame);
    return EINA_TRUE;
@@ -325,13 +344,12 @@ e_win_new(E_Comp *c)
    win->max_aspect = 0.0;
    wins = eina_list_append(wins, win);
 
-#ifndef HAVE_WAYLAND_ONLY
    if (c->comp_type == E_PIXMAP_TYPE_X)
      {
         win->pointer = e_pointer_window_new(win->evas_win, 1);
         win->pointer->color = c->pointer->color;
      }
-#endif
+
    return win;
 }
 

-- 


Reply via email to