After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 675241 - font viewer fails to show sample view on some fonts
font viewer fails to show sample view on some fonts
Status: RESOLVED FIXED
Product: gnome-font-viewer
Classification: Core
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: gnome-font-viewer-maint
gnome-font-viewer-maint
Depends on:
Blocks:
 
 
Reported: 2012-05-01 14:00 UTC by Christian Persch
Modified: 2012-05-01 18:48 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Persch 2012-05-01 14:00:09 UTC
I have at least some fonts that when shown in the sample view, causes this warning (which makes the widget not draw correctly):

Gtk-WARNING **: drawing failure for widget `SushiFontWidget': invalid matrix (not invertible)

(gdb) where
  • #0 g_log
    at gmessages.c line 791
  • #1 _gtk_widget_draw_internal
    at gtkwidget.c line 5752
  • #2 gtk_widget_send_expose
    at gtkwidget.c line 6120
  • #3 gtk_main_do_event
    at gtkmain.c line 1621
  • #4 _gdk_event_emit
    at gdkevents.c line 69
  • #5 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3883

The font in question is:

(gdb) frame 1
(gdb) p ((SushiFontWidget*)widget)->priv->uri
$9 = (gchar *) 0x82de690 "file:///usr/share/fonts/zvbi/caption.pcf.gz"
Comment 1 Cosimo Cecchi 2012-05-01 16:17:06 UTC
Thanks, I now pushed a fix for this to git master.
Comment 2 Christian Persch 2012-05-01 16:57:03 UTC
Unfortunately it's still reproducible, with Caption Italic this time, and only on every 2nd or 3rd time I click on that font in the overview.

These valgrind warnings appeared, they might be related:

==4289== Invalid read of size 4
==4289==    at 0x804EFE4: sushi_font_widget_size_request (sushi-font-widget.c:325)
==4289==    by 0x804F76A: sushi_font_widget_get_preferred_width (sushi-font-widget.c:395)
==4289==    by 0x42FB922: compute_size_for_orientation (gtksizerequest.c:349)
==4289==    by 0x42FBFC8: gtk_widget_get_preferred_width (gtksizerequest.c:542)
==4289==    by 0x43E4368: gtk_viewport_get_preferred_size (gtkviewport.c:973)
==4289==    by 0x43E43D8: gtk_viewport_get_preferred_width (gtkviewport.c:993)
==4289==    by 0x42FB922: compute_size_for_orientation (gtksizerequest.c:349)
==4289==    by 0x42FC1E8: gtk_widget_get_preferred_width_for_height (gtksizerequest.c:608)
==4289==    by 0x42FC4E5: gtk_widget_get_preferred_size (gtksizerequest.c:707)
==4289==    by 0x4191B02: gtk_container_real_check_resize (gtkcontainer.c:1824)
==4289==    by 0x4B3048B: g_cclosure_marshal_VOID__VOIDv (gmarshal.c:115)
==4289==    by 0x4B2E119: g_type_class_meta_marshalv (gclosure.c:997)
==4289==    by 0x4B2DCDB: _g_closure_invoke_va (gclosure.c:840)
==4289==    by 0x4B46A37: g_signal_emit_valist (gsignal.c:3207)
==4289==    by 0x4B47497: g_signal_emit (gsignal.c:3352)
==4289==    by 0x4191AB9: gtk_container_check_resize (gtkcontainer.c:1814)
==4289==    by 0x4191563: gtk_container_idle_sizer (gtkcontainer.c:1677)
==4289==    by 0x4611BCC: gdk_threads_dispatch (gdk.c:763)
==4289==    by 0x4BC9D3E: g_idle_dispatch (gmain.c:4657)
==4289==    by 0x4BC75F9: g_main_dispatch (gmain.c:2539)
==4289==    by 0x4BC81A5: g_main_context_dispatch (gmain.c:3075)
==4289==    by 0x4BC8390: g_main_context_iterate (gmain.c:3146)
==4289==    by 0x4BC8463: g_main_context_iteration (gmain.c:3207)
==4289==    by 0x488BAA9: g_application_run (gapplication.c:1496)
==4289==    by 0x8051E55: main (font-view.c:742)
==4289==  Address 0x7436c60 is not stack'd, malloc'd or (recently) free'd
==4289== 
==4289== Invalid read of size 4
==4289==    at 0x804F8D2: sushi_font_widget_draw (sushi-font-widget.c:449)
==4289==    by 0x4256B85: _gtk_marshal_BOOLEAN__BOXEDv (gtkmarshalers.c:130)
==4289==    by 0x43E4A63: gtk_widget_draw_marshallerv (gtkwidget.c:849)
==4289==    by 0x4B2E119: g_type_class_meta_marshalv (gclosure.c:997)
==4289==    by 0x4B2DCDB: _g_closure_invoke_va (gclosure.c:840)
==4289==    by 0x4B46A37: g_signal_emit_valist (gsignal.c:3207)
==4289==    by 0x4B47497: g_signal_emit (gsignal.c:3352)
==4289==    by 0x43EDBD2: _gtk_widget_draw_internal (gtkwidget.c:5740)
==4289==    by 0x43EE874: gtk_widget_send_expose (gtkwidget.c:6120)
==4289==    by 0x42551CA: gtk_main_do_event (gtkmain.c:1621)
==4289==    by 0x461CEB7: _gdk_event_emit (gdkevents.c:69)
==4289==    by 0x462C8B6: _gdk_window_process_updates_recurse (gdkwindow.c:3883)
==4289==    by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928)
==4289==    by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928)
==4289==    by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928)
==4289==    by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928)
==4289==    by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928)
==4289==    by 0x4669E31: gdk_x11_window_process_updates_recurse (gdkwindow-x11.c:4850)
==4289==    by 0x462CC51: gdk_window_process_updates_internal (gdkwindow.c:4069)
==4289==    by 0x462CF09: gdk_window_process_all_updates (gdkwindow.c:4200)
==4289==    by 0x4191572: gtk_container_idle_sizer (gtkcontainer.c:1680)
==4289==    by 0x4611BCC: gdk_threads_dispatch (gdk.c:763)
==4289==    by 0x4BC9D3E: g_idle_dispatch (gmain.c:4657)
==4289==    by 0x4BC75F9: g_main_dispatch (gmain.c:2539)
==4289==    by 0x4BC81A5: g_main_context_dispatch (gmain.c:3075)
==4289==    by 0x4BC8390: g_main_context_iterate (gmain.c:3146)
==4289==    by 0x4BC8463: g_main_context_iteration (gmain.c:3207)
==4289==    by 0x488BAA9: g_application_run (gapplication.c:1496)
==4289==    by 0x8051E55: main (font-view.c:742)
==4289==  Address 0xadd8638 is not stack'd, malloc'd or (recently) free'd
Comment 3 Cosimo Cecchi 2012-05-01 18:48:08 UTC
Okay, those helped a lot.
This should be fixed for good now.