aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2015-07-08 18:48:19 (GMT)
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-07-08 18:48:19 (GMT)
commit9f51bffd1e1568fdfbee69abb2df136d4ef7dd24 (patch)
treef0e44fdb44979b034c20df257afbeecf39bdce2d
parentset xwayland clients in x11 compositor client hash using parent window on flip (diff)
downloadenlightenment-9f51bffd1e1568fdfbee69abb2df136d4ef7dd24.tar.gz
make e_client_util_.?win_get() fns return xwayland windows when available
fixes setting x11 hints in xwayland clients
-rw-r--r--src/bin/e_client.x8
-rw-r--r--src/bin/e_comp_x.c10
-rw-r--r--src/bin/e_comp_x.h3
3 files changed, 21 insertions, 0 deletions
diff --git a/src/bin/e_client.x b/src/bin/e_client.x
index 562f75a..2a27855 100644
--- a/src/bin/e_client.x
+++ b/src/bin/e_client.x
@@ -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
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index f9ec6d3..498f00d 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -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;
+}
diff --git a/src/bin/e_comp_x.h b/src/bin/e_comp_x.h
index 1be3d46..33360e5 100644
--- a/src/bin/e_comp_x.h
+++ b/src/bin/e_comp_x.h
@@ -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