Closed Bug 414534 Opened 17 years ago Closed 14 years ago

gtk_paint_arrow: assertion `style->depth == gdk_drawable_get_depth (window)' failed

Categories

(Core Graveyard :: GFX: Gtk, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: sikon, Unassigned)

Details

(Keywords: regression)

Build: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b3pre) Gecko/2008012913 Firefox/3.0b3pre When I launch Firefox 3.0b3pre with the QtCurve GTK theme, I get a bunch of errors: (gecko:15737): Gdk-CRITICAL **: gdk_gc_set_ts_origin: assertion `GDK_IS_GC (gc)' failed (gecko:15737): Gdk-CRITICAL **: gdk_gc_set_ts_origin: assertion `GDK_IS_GC (gc)' failed (gecko:15737): Gdk-CRITICAL **: gdk_gc_set_ts_origin: assertion `GDK_IS_GC (gc)' failed (gecko:15737): Gdk-CRITICAL **: gdk_gc_set_ts_origin: assertion `GDK_IS_GC (gc)' failed (gecko:15737): Gdk-CRITICAL **: gdk_gc_set_ts_origin: assertion `GDK_IS_GC (gc)' failed (gecko:15737): Gdk-CRITICAL **: gdk_gc_set_ts_origin: assertion `GDK_IS_GC (gc)' failed (gecko:15737): Gdk-CRITICAL **: gdk_gc_set_ts_origin: assertion `GDK_IS_GC (gc)' failed (gecko:15737): Gtk-CRITICAL **: gtk_paint_arrow: assertion `style->depth == gdk_drawable_get_depth (window)' failed Toolbar arrows are not drawn, and Firefox periodically freezes after outputting these messages. This issue does not occur with the Clearlooks theme.
What version of GTK+ do you have?
2.12.0. QtCurve theme version 0.55.2.
Right now I've fallen back to an older build, where this bug does not occur and arrows are drawn normally. Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b3pre) Gecko/2008011714 Firefox/3.0b3pre
Any idea when it regressed (what day)?
No idea what could cause the regression. Sadly, I don't update regularly. gtk_paint_arrow is only used in widget/src/gtk2/gtk2drawing.c, so you could probably check the revision history for that file. I also checked other themes from the default Ubuntu install. I reproduced this regression with the Redmond theme, but not with any others.
I also encountered this problem. It happened sometime between 2008/01/11 and 2008/01/24 (I was out of the country during that time and not updating the source every day.) The problem appears to be the function ensure_arrow_widget() in gtk2drawing.c in widget/src/gtk2. I pulled out the old source from the beta2 tarball and compared it with the current gtk2drawing.c. The old code (which still appears to work properly if you put it back into gtk2drawing.c): ensure_arrow_widget() { if (!gArrowWidget) { gDropdownButtonWidget = gtk_button_new(); setup_widget_prototype(gDropdownButtonWidget); gArrowWidget = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT); gtk_container_add(GTK_CONTAINER(gDropdownButtonWidget), gArrowWidget); gtk_widget_realize(gArrowWidget); } return MOZ_GTK_SUCCESS; } The code which is broken: ensure_arrow_widget() { if (!gArrowWidget) { ensure_combo_box_entry_widget(); gtk_container_forall(GTK_CONTAINER(gComboBoxEntryWidget), moz_gtk_get_dropdown_button, NULL); gArrowWidget = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT); gtk_container_add(GTK_CONTAINER(GTK_BIN(gDropdownButtonWidget)->child), gArrowWidget); gtk_widget_realize(gArrowWidget); } return MOZ_GTK_SUCCESS; } Sorry for the horrible looking cut-n-paste job. Is there a better / proper way to make such notations in these forums (I'm a first-time poster, as if you couldn't tell.)
mxr.mozilla.org is useful for performing that sort of archaeology.
Why can't this change simply be reverted? What was it meant to accomplish?
Keywords: regression
(In reply to comment #8) > What was it meant to accomplish? If you search for "ensure_arrow_widget" on lxr.mozilla.org, you'll find: http://lxr.mozilla.org/seamonkey/source/widget/src/gtk2/gtk2drawing.c#284 . Then click the "CVS Blame" link at the top of the page, and find the same line. You'll see line annotations that point to revision 1.66 and 1.70 of gtk2drawing.c. If you hover over the annotations you'll see that they have commit messages pointing to bug 405210 and bug 413084, respectively.
Product: Core → Core Graveyard
$ thunderbird progname=thunderbird-bin; RGBA=on (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_flat_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_shadow: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_flat_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_shadow: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_arrow: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_extension: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_box_gap: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_extension: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_box_gap: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_flat_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_shadow: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_flat_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_shadow: assertion `style->depth == gdk_drawable_get_depth (window)' failed (thunderbird-bin:5110): Gtk-CRITICAL **: gtk_paint_arrow: assertion `style->depth == gdk_drawable_get_depth (window)' failed The program 'thunderbird-bin' received an X Window System error. This probably reflects a bug in the program. The error was 'BadMatch (invalid parameter attributes)'. (Details: serial 1394 error_code 8 request_code 70 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)
I do not see these error messages with a trunk build and qtcurve.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.