Native widgets fail to paint with Gdk-CRITICAL GDK_IS_DRAWABLE assertion when opacity < 1

RESOLVED FIXED in mozilla1.9.1a2

Status

()

Core
Graphics
RESOLVED FIXED
10 years ago
10 years ago

People

(Reporter: karlt, Assigned: karlt)

Tracking

({regression, testcase})

Trunk
mozilla1.9.1a2
x86
Linux
regression, testcase
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

10 years ago
Created attachment 334212 [details]
testcase

(firefox-bin:3646): Gdk-CRITICAL **: gdk_drawable_get_depth: assertion `GDK_IS_DRAWABLE (drawable)' failed

(firefox-bin:3646): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed

(gdb) break g_log
Breakpoint 8 at 0x7f483f0a5a25
(gdb) run
Breakpoint 8, 0x00007fcab2da4a25 in IA__g_log ()
   from /usr/lib64/libglib-2.0.so.0
Current language:  auto; currently c
(gdb) bt 9
#0  0x00007fcab2da4a25 in IA__g_log () from /usr/lib64/libglib-2.0.so.0
#1  0x00007fcab3d7a8ac in IA__gdk_drawable_get_depth ()
   from /usr/lib64/libgdk-x11-2.0.so.0
#2  0x00007fcab43a09bb in IA__gtk_paint_box ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#3  0x00007fcaaa302e0c in moz_gtk_button_paint (drawable=0x0, 
    rect=0x7fffbe411d10, cliprect=0x7fffbe411d00, state=0x7fffbe4123c8, 
    relief=GTK_RELIEF_NORMAL, widget=0x1cddac0, direction=GTK_TEXT_DIR_LTR)
    at /home/karl/moz/dev/widget/src/gtk2/gtk2drawing.c:844
#4  0x00007fcaaa3083ed in moz_gtk_widget_paint (widget=MOZ_GTK_BUTTON, 
    drawable=0x0, rect=0x7fffbe411d10, cliprect=0x7fffbe411d00, 
    state=0x7fffbe4123c8, flags=0, direction=GTK_TEXT_DIR_LTR)
    at /home/karl/moz/dev/widget/src/gtk2/gtk2drawing.c:3038
#5  0x00007fcaaa343043 in ThemeRenderer::NativeDraw (this=0x7fffbe4123c0, 
    drawable=0x0, offsetX=0, offsetY=0, clipRects=0x7fffbe411df0, 
    numClipRects=0)
    at /home/karl/moz/dev/widget/src/gtk2/nsNativeThemeGTK.cpp:651
#6  0x00007fcaa9d9cea9 in NativeRendering (closure=0x7fffbe4122e0, 
    drawable=0x0, offset_x=0, offset_y=0, rectangles=0x7fffbe411df0, 
    num_rects=0)
    at /home/karl/moz/dev/gfx/thebes/src/gfxGdkNativeRenderer.cpp:60
#7  0x00007fcaa9d75c91 in _draw_with_xlib_direct (cr=0x2229ec0, 
    default_display=0x1b639c0, callback=0x7fcaa9d9ce4c <NativeRendering>, 
    closure=0x7fffbe4122e0, bounds_width=42, bounds_height=25, 
    capabilities=CAIRO_GDK_DRAWING_SUPPORTS_OFFSET)
    at /home/karl/moz/dev/gfx/thebes/src/cairo-xlib-utils.c:304
#8  0x00007fcaa9d763aa in cairo_draw_with_gdk (cr=0x2229ec0, 
    drawable=0x2a814f0, callback=0x7fcaa9d9ce4c <NativeRendering>, 
    closure=0x7fffbe4122e0, width=42, height=25, 
    is_opaque=CAIRO_GDK_DRAWING_TRANSPARENT, 
    capabilities=CAIRO_GDK_DRAWING_SUPPORTS_OFFSET, result=0x0)
    at /home/karl/moz/dev/gfx/thebes/src/cairo-xlib-utils.c:524

This looks like a regression from bug 422221.
(Assignee)

Comment 1

10 years ago
The cause is discussed in bug 449959 comment 12 and suggested fix in bug 449959 comment 17.
(Assignee)

Updated

10 years ago
Assignee: nobody → mozbugz
(Assignee)

Comment 2

10 years ago
This was fixed in bug 449959.
The reftest I wrote is no use for automated tests as it passes without the fix, because reftest results use a different path for drawing to png.
Depends on: 449959
(Assignee)

Updated

10 years ago
Status: NEW → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.1a2
You need to log in before you can comment on or make changes to this bug.