make e_client_util_.?win_get() fns return xwayland windows when available
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 8 Jul 2015 18:48:19 +0000 (14:48 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 8 Jul 2015 18:48:19 +0000 (14:48 -0400)
fixes setting x11 hints in xwayland clients

src/bin/e_client.x
src/bin/e_comp_x.c
src/bin/e_comp_x.h

index 562f75a..2a27855 100644 (file)
@@ -87,14 +87,22 @@ static inline Ecore_Window
 e_client_util_pwin_get(const E_Client *ec)
 {
    if (!ec->pixmap) return 0;
+#if defined(HAVE_WAYLAND) && !defined(HAVE_WAYLAND_ONLY)
+   return e_pixmap_parent_window_get(e_comp_x_client_pixmap_get(ec));
+#else
    return e_pixmap_parent_window_get(ec->pixmap);
+#endif
 }
 
 static inline Ecore_Window
 e_client_util_win_get(const E_Client *ec)
 {
    if (!ec->pixmap) return 0;
+#if defined(HAVE_WAYLAND) && !defined(HAVE_WAYLAND_ONLY)
+   return e_pixmap_window_get(e_comp_x_client_pixmap_get(ec));
+#else
    return e_pixmap_window_get(ec->pixmap);
+#endif
 }
 
 static inline Eina_Bool
index f9ec6d3..498f00d 100644 (file)
@@ -5461,3 +5461,13 @@ e_comp_x_xwayland_client_setup(E_Client *ec, E_Client *wc)
    _e_comp_x_client_stack(wc);
 }
 #endif
+
+E_API inline E_Pixmap *
+e_comp_x_client_pixmap_get(const E_Client *ec)
+{
+#ifdef HAVE_WAYLAND
+   if (!e_pixmap_is_x(ec->pixmap))
+     return e_comp_wl_client_xwayland_pixmap(ec);
+#endif
+   return ec->pixmap;
+}
index 1be3d46..33360e5 100644 (file)
@@ -111,5 +111,8 @@ E_API void e_comp_x_shutdown(void);
 E_API void e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window win);
 EINTERN void e_comp_x_nocomp_end(void);
 EINTERN void e_comp_x_xwayland_client_setup(E_Client *ec, E_Client *wc);
+
+E_API E_Pixmap *e_comp_x_client_pixmap_get(const E_Client *ec);
+
 # endif
 #endif