aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/mb-wm-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/mb-wm-client.c')
-rw-r--r--src/core/mb-wm-client.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/core/mb-wm-client.c b/src/core/mb-wm-client.c
index e79e847..2653386 100644
--- a/src/core/mb-wm-client.c
+++ b/src/core/mb-wm-client.c
@@ -24,6 +24,10 @@
#include <unistd.h>
#include <signal.h>
+#ifdef ENABLE_COMPOSITE
+#include <X11/extensions/Xrender.h>
+#endif
+
struct MBWindowManagerClientPriv
{
Bool realized;
@@ -169,6 +173,20 @@ mb_wm_client_init (MBWMObject *obj, va_list vap)
status,
win->xwindow);
+#ifdef ENABLE_COMPOSITE
+ {
+ XRenderPictFormat *format;
+
+ format = XRenderFindVisualFormat (wm->xdpy, win->visual);
+
+ if (format && format->type == PictTypeDirect &&
+ format->direct.alphaMask)
+ {
+ client->is_argb32 = True;
+ }
+ }
+#endif
+
return 1;
}
@@ -1010,3 +1028,9 @@ mb_wm_client_get_stacking_layer (MBWindowManagerClient *client)
return client->stacking_layer;
}
+Bool
+mb_wm_client_is_argb32 (MBWindowManagerClient *client)
+{
+ return client->is_argb32;
+}
+