diff options
Diffstat (limited to 'src/core/mb-wm-client.c')
-rw-r--r-- | src/core/mb-wm-client.c | 24 |
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; +} + |