Dear Maintainer,
When running X in 30-bit color depth window borders and title bars are garbled
as in the screenshot [1].
The following messages are written to ~/.xsession-errors:
(xfwm4:3619): Gdk-CRITICAL **: IA__gdk_drawable_set_colormap: assertion 'cmap == NULL || gdk_drawable_get_depth (drawable) == cmap->visual->depth' failed
(xfwm4:3619): Gdk-WARNING **: /tmp/buildd/gtk+2.0-2.24.28/gdk/gdkpixbuf-drawable.c:1249: Source drawable has no colormap; either pass in a colormap, or set the colormap on the drawable with gdk_drawable_set_colormap()
(xfwm4:3619): Gdk-WARNING **: The gdk_draw_*_image require the drawable argument to
have a specified colormap. All windows have a colormap,
however, pixmaps only have colormap by default if they
were created with a non-NULL window argument. Otherwise
a colormap must be set on them with gdk_drawable_set_colormap
I have verified that the attached patch works in 24 and 30 bit color depths with
the NVIDIA binary driver from from the Debian package nvidia-driver version
340.93-3.
Deep Color with 30-bit depth is enabled by the following /etc/X11/xorg.conf:
Section "Device"
Identifier "Quadro K620"
Driver "nvidia"
EndSection
Section "Screen"
Identifier "Primary Screen"
DefaultDepth 30
SubSection "Display"
Depth 30
EndSubSection
EndSection
I have not been able to reproduce the error and test the patch with the Nouveau
driver as it doesn't support my GPU.
See [2] for API documentation about 'gdk_screen_get_rgb_colormap'.
[1] http://silb.no/xfwm4-30-bit-depth-garbled.png
[2] https://developer.gnome.org/gdk2/stable/GdkScreen.html#gdk-screen-get-rgb-colormap