Open Bug 427485 Opened 12 years ago Updated 8 years ago

gdk warnings during native theme drawing


(Core :: Graphics, defect)

Not set




(Reporter: vlad, Unassigned)



This started with the latest cairo; this cairo has a pile of fixes to make various types of X visuals work with cairo (pesudocolor, etc.).  However, something seems to have changed in the surface creation, such that gdk prints warnings such as:

(Gecko:26391): Gdk-CRITICAL **: gdk_drawable_set_colormap: assertion `cmap == NULL || gdk_drawable_get_depth (drawable) == cmap->visual->depth' failed
(Gecko:26391): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed
(Gecko:26391): Gtk-CRITICAL **: gtk_paint_arrow: assertion `style->depth == gdk_drawable_get_depth (window)' failed
(Gecko:26391): Gtk-CRITICAL **: gtk_paint_vline: assertion `style->depth == gdk_drawable_get_depth (window)' failed

for the first assertion, gdk_drawable_get_depth(gdkPixmap) at nsNativeThemeGTK.cpp:672 is 32, while colorMap->visual->depth is 24.  We're getting a 32-bit drawable, where we really want a 24-bit one; the other warnings are the same issue (style->depth is 24, and we have a 32 bit drawable).

I'm not sure where that 32-bit drawable is coming from.
So PushGroup with CAIRO_CONTENT_COLOR_ALPHA is now finding a 32-bpp X drawable.  The themes don't like that, so we need to take the slow path, but we don't.  I think.
What do we need to do about this?
You need to log in before you can comment on or make changes to this bug.