#800883 xfwm4: Garbled window decorations in 30-bit color depth

Package:
xfwm4
Source:
xfwm4
Description:
window manager of the Xfce project
Submitter:
Stig Inge Lea Bjørnsen
Date:
2015-10-04 15:09:05 UTC
Severity:
normal
#800883#5
Date:
2015-10-04 14:27:05 UTC
From:
To:
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