Re: [cairo] Color fonts

[email protected]
Newsgroups gmane.comp.gnome.gtk+.devel.general,gmane.comp.lib.cairo
Message-ID <[email protected]>
Another crash:

Paste this into gedit:

 πŸ‘ πŸ‘Ž πŸ‘Œ πŸ‘Š ✊ ✌ πŸ‘‹ βœ‹ πŸ‘ πŸ‘† πŸ‘‡ πŸ‘‰ πŸ‘ˆ πŸ™Œ πŸ™ ☝ πŸ‘ πŸ’ͺ πŸ’… ⬇ β¬… ➑ β†— β†– β†˜ ↙ ↔ 
↕ πŸ”„ β—€ β–Ά πŸ”Ό πŸ”½ ↩ β†ͺ βͺ ⏩ ⏫ ⏬ ‡ ‴ πŸ”€ πŸ” πŸ”‚ πŸ” πŸ”š πŸ”™ πŸ”› πŸ”œ πŸ”ƒ πŸ”Ί πŸ”» ⬆ 

and then select it


Pango:ERROR:pango-glyph-item.c:320:pango_glyph_item_iter_next_cluster:
assertion failed: (iter->end_char <= item->num_chars)


#0  0x00007fd51d29a68b in raise () at /lib64/libc.so.6
#1  0x00007fd51d29c417 in abort () at /lib64/libc.so.6
#2  0x00007fd51d8da26d in g_assertion_message () at /lib64/libglib-
2.0.so.0
#3  0x00007fd51d8da2fa in g_assertion_message_expr () at
/lib64/libglib-2.0.so.0
#4  0x00007fd51f178076 in  () at /lib64/libpango-1.0.so.0
#5  0x00007fd51f3b110f in pango_cairo_renderer_draw_glyph_item () at
/lib64/libpangocairo-1.0.so.0
(gdb) bt 300
#0  0x00007fd51d29a68b in raise () at /lib64/libc.so.6
#1  0x00007fd51d29c417 in abort () at /lib64/libc.so.6
#2  0x00007fd51d8da26d in g_assertion_message () at /lib64/libglib-
2.0.so.0
#3  0x00007fd51d8da2fa in g_assertion_message_expr () at
/lib64/libglib-2.0.so.0
#4  0x00007fd51f178076 in  () at /lib64/libpango-1.0.so.0
#5  0x00007fd51f3b110f in pango_cairo_renderer_draw_glyph_item () at
/lib64/libpangocairo-1.0.so.0
#6  0x00007fd51f184e1e in pango_renderer_draw_glyph_item () at
/lib64/libpango-1.0.so.0
#7  0x00007fd51f3b15fd in pango_cairo_show_glyph_item () at
/lib64/libpangocairo-1.0.so.0
#8  0x00007fd51fba7816 in gtk_text_renderer_draw_glyph_item
(renderer=0x39caad6040, text=0x39c9fe7c50 "πŸ‘ πŸ‘Ž πŸ‘Œ πŸ‘Š ✊ ✌ πŸ‘‹ βœ‹ πŸ‘ πŸ‘† 
πŸ‘‡ πŸ‘‰ πŸ‘ˆ πŸ™Œ πŸ™ ☝ πŸ‘ πŸ’ͺ πŸ’… ⬇ β¬… ➑ β†— β†– β†˜ ↙ ↔ ↕ πŸ”„ β—€ β–Ά πŸ”Ό πŸ”½ ↩ β†ͺ βͺ ⏩ ⏫ ⏬  
 \265 ‴ πŸ”€ πŸ” πŸ”‚", <incomplete sequence \360\237\224>.
.., glyph_item=0x39ca1cf810, x=932864, y=14336) at gtktextdisplay.c:334
#9  0x00007fd51f184e1e in pango_renderer_draw_glyph_item () at
/lib64/libpango-1.0.so.0
#10 0x00007fd51f1858b1 in pango_renderer_draw_layout_line () at
/lib64/libpango-1.0.so.0
#11 0x00007fd51fba817a in render_para (selection_end_index=-1,
selection_start_index=-1, line_display=<optimized out>,
text_renderer=<optimized out>) at gtktextdisplay.c:705
#12 0x00007fd51fba817a in gtk_text_layout_draw (layout=0x39ca4e5d40, wi
dget=widget@entry=0x39ca5e8610, cr=cr@entry=0x39cab3ab70, widgets=widge
ts@entry=0x0)
    at gtktextdisplay.c:942
#13 0x00007fd51fbc6504 in gtk_text_view_paint (cr=0x39cab3ab70,
widget=0x39ca5e8610) at gtktextview.c:5867
#14 0x00007fd51fbc6504 in draw_text (cr=0x39cab3ab70,
user_data=0x39ca5e8610) at gtktextview.c:5908
#15 0x00007fd51fb333f0 in _gtk_pixel_cache_repaint
(user_data=0x39ca5e8610, canvas_rect=0x7ffc9f295740,
view_rect=0x7ffc9f295730, draw=0x7fd51fbc6290 <draw_text>,
window=0x39caae2340, cache=0x39ca5e0d00) at gtkpixelcache.c:357
#16 0x00007fd51fb333f0 in _gtk_pixel_cache_draw (cache=0x39ca5e0d00, cr
=cr@entry=0x39ca4fc8b0, window=window@entry=0x39caae2340, view_rect=vie
w_rect@entry=0x7ffc9f295730, canvas_rect=canvas_rect@entry=0x7ffc9f2957
40, draw=draw@entry=0x7fd51fbc6290 <draw_text>, user_data=0x39ca5e8610)
at gtkpixelcache.c:447
#17 0x00007fd51fbcb970 in gtk_text_view_draw (widget=0x39ca5e8610,
cr=0x39ca4fc8b0) at gtktextview.c:5998
#18 0x00007fd52040db2d in gtk_source_view_draw () at
/lib64/libgtksourceview-3.0.so.1
#19 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca5e8610, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#20 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca32f7f0, child=0x39ca5e8610, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#21 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca32f7f0,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#22 0x00007fd51fb6164b in gtk_scrolled_window_render (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, data=0x0) at
gtkscrolledwindow.c:2078
#23 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#24 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca4095e0,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#25 0x00007fd51fb5f931 in gtk_scrolled_window_draw (widget=<optimized
out>, cr=<optimized out>) at gtkscrolledwindow.c:2989
#26 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca32f7f0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#27 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05c2c0, child=0x39ca32f7f0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#28 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05c2c0, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#29 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#30 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#31 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca409660,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#32 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#33 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05c2c0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#34 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca49a3c0, child=0x39ca05c2c0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#35 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca49a3c0,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#36 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca49a3c0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#37 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca3a9870, child=0x39ca49a3c0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#38 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca3a9870, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#39 0x00007fd51fa93324 in gtk_grid_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data=0x0) at gtkgrid.c:1713
#40 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#41 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca22b260,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#42 0x00007fd51fa94461 in gtk_grid_draw (widget=<optimized out>,
cr=<optimized out>) at gtkgrid.c:1722
#43 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca3a9870, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#44 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2b9660, child=0x39ca3a9870, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#45 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b9660,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#46 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2b9660, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#47 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39c9fcdf10, child=0x39ca2b9660, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#48 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39c9fcdf10, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#49 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#50 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#51 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca22b4e0,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#52 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#53 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39c9fcdf10, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#54 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2ba260, child=0x39c9fcdf10, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#55 0x00007fd51fb03bb2 in gtk_notebook_draw_stack (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtknotebook.c:2515
#56 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#57 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=gadget@entry=0x39
ca1bd7a0, cr=cr@entry=0x39ca4fc8b0) at gtkcssgadget.c:877
#58 0x00007fd51f9c7d08 in gtk_box_gadget_draw (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>)
    at gtkboxgadget.c:512
#59 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca258b30, cr=
cr@entry=0x39ca4fc8b0) at gtkcssgadget.c:877
#60 0x00007fd51fb0639c in gtk_notebook_draw (widget=<optimized out>,
cr=0x39ca4fc8b0) at gtknotebook.c:2530
#61 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2ba260, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#62 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2b2a40, child=0x39ca2ba260, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#63 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b2a40, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#64 0x00007fd51fa93324 in gtk_grid_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data=0x0) at gtkgrid.c:1713
#65 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#66 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1bd620,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#67 0x00007fd51fa94461 in gtk_grid_draw (widget=<optimized out>,
cr=<optimized out>) at gtkgrid.c:1722
#68 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2b2a40, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#69 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05bbc0, child=0x39ca2b2a40, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#70 0x00007fd51fb12e50 in gtk_paned_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data=0x0) at gtkpaned.c:1818
#71 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#72 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1bd1a0,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#73 0x00007fd51fb12c61 in gtk_paned_draw (widget=<optimized out>,
cr=<optimized out>) at gtkpaned.c:1782
#74 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05bbc0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#75 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05cf20, child=0x39ca05bbc0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#76 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05cf20, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#77 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#78 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#79 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca236f10,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#80 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#81 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05cf20, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#82 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05b800, child=0x39ca05cf20, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#83 0x00007fd51fb12dc0 in gtk_paned_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data=0x0) at gtkpaned.c:1832
#84 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#85 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1de400,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#86 0x00007fd51fb12c61 in gtk_paned_draw (widget=<optimized out>,
cr=<optimized out>) at gtkpaned.c:1782
#87 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05b800, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#88 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05cb00, child=0x39ca05b800, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#89 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05cb00, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#90 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#91 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#92 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1de200,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#93 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#94 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05cb00, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#95 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2b1860, child=0x39ca05cb00, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#96 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b1860,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#97 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2b1860, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#98 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca18d030, child=0x39ca2b1860, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#99 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca18d030,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#100 0x00007fd51fc3b5b3 in gtk_window_draw (widget=0x39ca18d030,
cr=0x39ca4fc8b0) at gtkwindow.c:10214
#101 0x00007fd51fc2d7cb in gtk_widget_draw_internal
(widget=0x39ca18d030, cr=0x39ca4fc8b0, clip_to_size=<optimized out>) at
gtkwidget.c:7017
#102 0x00007fd51fc36b38 in gtk_widget_render (widget=widget@entry=0x39c
a18d030, window=0x39ca441320, region=<optimized out>) at
gtkwidget.c:17512
#103 0x00007fd51fad7239 in gtk_main_do_event (event=<optimized out>) at
gtkmain.c:1824
#104 0x00007fd51f5eb465 in _gdk_event_emit (event=event@entry=0x7ffc9f2
97450) at gdkevents.c:73
#105 0x00007fd51f5fb7a5 in _gdk_window_process_updates_recurse_helper
(window=0x39ca441320, expose_region=<optimized out>) at
gdkwindow.c:3849
#106 0x00007fd51f5fc9a6 in gdk_window_process_updates_internal
(window=0x39ca441320) at gdkwindow.c:3995
#107 0x00007fd51f5fcba0 in gdk_window_process_updates_with_mode
(window=<optimized out>, recurse_mode=<optimized out>) at
gdkwindow.c:4189
#108 0x00007fd51db8d57d in g_closure_invoke () at /lib64/libgobject-
2.0.so.0
#109 0x00007fd51dba0e4e in signal_emit_unlocked_R () at
/lib64/libgobject-2.0.so.0
#110 0x00007fd51dba9975 in g_signal_emit_valist () at
/lib64/libgobject-2.0.so.0
#111 0x00007fd51dbaa2df in g_signal_emit () at /lib64/libgobject-
2.0.so.0
#112 0x00007fd51f5f428f in _gdk_frame_clock_emit_paint
(frame_clock=<optimized out>) at gdkframeclock.c:640
#113 0x00007fd51f5f49c1 in gdk_frame_clock_paint_idle
(data=0x39ca024270) at gdkframeclockidle.c:430
#114 0x00007fd51f5dfb20 in gdk_threads_dispatch (data=0x39ca169d60) at
gdk.c:743
#115 0x00007fd51d8b3ffd in g_timeout_dispatch () at /lib64/libglib-
2.0.so.0
#116 0x00007fd51d8b3597 in g_main_context_dispatch () at
/lib64/libglib-2.0.so.0
#117 0x00007fd51d8b3938 in g_main_context_iterate.isra () at
/lib64/libglib-2.0.so.0
#118 0x00007fd51d8b39cc in g_main_context_iteration () at
/lib64/libglib-2.0.so.0
#119 0x00007fd51e3ea89d in g_application_run () at /lib64/libgio-
2.0.so.0
#120 0x00000039c94fddda in main ()


On Sat, 2017-07-29 at 17:43 +0100, Behdad Esfahbod wrote:
> Should be fixed.  Thanks!
> 
> On Sat, Jul 29, 2017 at 4:45 PM, <[email protected]> wrote:
> > Tried to run gnome-characters with Cairo master, switching to noto-
> > color-emoji crashes with:
> > 
> > #0  0x00007fd0ecd2868b in raise () at /lib64/libc.so.6
> > #1  0x00007fd0ecd2a417 in abort () at /lib64/libc.so.6
> > #2  0x00007fd0ecd208fa in __assert_fail_base () at /lib64/libc.so.6
> > #3  0x00007fd0ecd20972 in  () at /lib64/libc.so.6
> > #4  0x00007fd0f1370b6e in _cairo_error (status=status@entry=3646361
> > 312)
> > at cairo-error.c:68
> > #5  0x00007fd0f1367802 in _cairo_set_error (cr=0x3dd89ecc00,
> > status=3646361312) at cairo.c:400
> > #6  0x00007fd0f13691b1 in cairo_show_text_glyphs (cr=0x3dd89ecc00,
> > utf8=0x3dd8a41b40 "πŸ˜€", utf8_len=4, glyphs=0x7fffada90d60
> > , num_glyphs=1
> > , clusters=0x7fffada91640, num_clusters=1, cluster_flags=(unknown:
> > 0))
> > at cairo.c:3742
> > #7  0x00007fd0f0283f69 in
> > pango_cairo_renderer_show_text_glyphs.isra ()
> > at /lib64/libpangocairo-1.0.so.0
> > #8  0x00007fd0f0284161 in pango_cairo_renderer_draw_glyph_item ()
> > at
> > /lib64/libpangocairo-1.0.so.0
> > #9  0x00007fd0f0057e1e in pango_renderer_draw_glyph_item () at
> > /lib64/libpango-1.0.so.0
> > #10 0x00007fd0f00588b1 in pango_renderer_draw_layout_line () at
> > /lib64/libpango-1.0.so.0
> > #11 0x00007fd0f0058c65 in pango_renderer_draw_layout () at
> > /lib64/libpango-1.0.so.0
> > #12 0x00007fd0f028443a in _pango_cairo_do_layout () at
> > /lib64/libpangocairo-1.0.so.0
> > #13 0x00007fd0ef560bde in ffi_call_unix64 () at /lib64/libffi.so.6
> > #14 0x00007fd0ef56054f in ffi_call () at /lib64/libffi.so.6
> > #15 0x00007fd0f10ab6f6 in  () at /lib64/libgjs.so.0
> > #16 0x00007fd0f10ad066 in  () at /lib64/libgjs.so.0
> > #17 0x00007fd0ee3626a8 in js::Invoke(JSContext*, JS::CallArgs,
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so
> > #18 0x00007fd0ee3584cd in Interpret(JSContext*, js::RunState&) ()
> > at
> > /lib64/libmozjs-38.so
> > #19 0x00007fd0ee362324 in js::RunScript(JSContext*, js::RunState&)
> > ()
> > at /lib64/libmozjs-38.so
> > #20 0x00007fd0ee362614 in js::Invoke(JSContext*, JS::CallArgs,
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so
> > #21 0x00007fd0ee664f13 in js_fun_apply(JSContext*, unsigned int,
> > JS::Value*) () at /lib64/libmozjs-38.so
> > #22 0x00007fd0ee3626a8 in js::Invoke(JSContext*, JS::CallArgs,
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so
> > #23 0x00007fd0ee363243 in js::Invoke(JSContext*, JS::Value const&,
> > JS::Value const&, unsigned int, JS::Value const*,
> > JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-38.so
> > #24 0x00007fd0ee4b5485 in js::jit::DoCallFallback(JSContext*,
> > js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int,
> > JS::Value*, JS::MutableHandle<JS::Value>) ()
> >     at /lib64/libmozjs-38.so
> > #25 0x00007fd0f1877510 in  ()
> > #26 0x00007fffada948a0 in  ()
> > #27 0x00007fffada94368 in  ()
> > #28 0x0000000000000000 in  ()
> > 
> > On Sat, 2017-07-29 at 16:30 +0100, Behdad Esfahbod wrote:
> > > On Sat, Jul 29, 2017 at 11:58 AM, Uli Schlachter <[email protected]>
> > > wrote:
> > > > Hi Behdad
> > > >
> > > > I don't think that is my decision to make. When thinking about
> > > > "fonts in
> > > > cairo", I'm thinking "Behdad". I'm just asking weird questions
> > from
> > > > the
> > > > sideline. :-)
> > >
> > > Thanks. :-)  Pushed!!!!  At least ten people already asked me
> > "what's
> > > up with emoji" at GUADEC...
> > >
> > > > Uli
> > > >
> > > > P.S.: How relevant and up to date is the CC list here? I always
> > get
> > > > a
> > > > "your message to gtk-devel-list awaits moderator approval"-mail
> > > > when
> > > > replying to this thread...
> > > >
> > >
> > > My messages go through, yours probably don't because you are not
> > a
> > > member.  It's valuable still.
> > >
> > > Cheers,
> > > b
> > >
> > > > On 28.07.2017 16:38, Behdad Esfahbod wrote:
> > > > > Uli,
> > > > >
> > > > > Can we commit this?  I don't think waiting another few years
> > will
> > > > result in
> > > > > a superior patchset. :)
> > > > >
> > > > > Cheers,
> > > > >
> > > > > behdad
> > > > >
> > > > > On Wed, Jul 19, 2017 at 1:53 AM, Behdad Esfahbod <behdad@behd
> > ad.o
> > > > rg> wrote:
> > > > >
> > > > >> Right.  In the future we would want to make it show glyphs
> > in
> > > > the input
> > > > >> order, ie. not separate color vs non-color.  That's the
> > order
> > > > required by
> > > > >> CSS for example.  In a show-text-glyphs call with
> > > > CAIRO_TEXT_CLUSTER_FLAG_BACKWARD,
> > > > >> it might be desirable to show back-to-front.
> > > > >>
> > > > >> On Tue, Jul 18, 2017 at 1:59 PM, Matthias Clasen <
> > > > >> [email protected]> wrote:
> > > > >>
> > > > >>> On Sat, Jul 15, 2017 at 4:05 AM, Uli Schlachter <psychon@zn
> > c.in
> > > > > wrote:
> > > > >>>
> > > > >>>> On 07.07.2017 15:23, Matthias Clasen wrote:
> > > > >>>>> On Sat, Jul 1, 2017 at 2:25 AM, Uli Schlachter <psychon@z
> > nc.i
> > > > n> wrote:
> > > > >>>>>> On 30.06.2017 17:29, Behdad Esfahbod wrote:
> > > > >>>>>>> On Jun 30, 2017 7:51 PM, "Matthias Clasen" <mclasen@red
> > hat.
> > > > com>
> > > > >>>> wrote:
> > > > >>>>>>> On Fri, 2017-06-30 at 17:02 +0200, Uli Schlachter
> > wrote:
> > > > >>>>>>>> On 28.06.2017 14:23, Behdad Esfahbod wrote:
> > > > >>>>>>>>> All of you have asked me about the status of color
> > fonts
> > > > in
> > > > >>>>>>>>> cairo.  There's
> > > > >>>>>>>>> some discussion here:
> > > > >>>>>>>>
> > > > >>>>>>>> what was the solution to make this fit into cairo's
> > > > drawing model?
> > > > >>>>>>>> Text
> > > > >>>>>>>> / glyphs are used as a mask and a mask does not have
> > > > colors.
> > > > >>>>>>>>
> > > > >>>>>>>
> > > > >>>>>>> There is no solution to that. The assumption in cairo's
> > > > drawing model
> > > > >>>>>>> about glyphs/fonts has simply been invalidated by
> > reality.
> > > > >>>>>>>
> > > > >>>>>>>
> > > > >>>>>>> Correct.
> > > > >>>>>>
> > > > >>>>>> Okay... so what is the new model? What happens when I
> > draw a
> > > > color
> > > > >>>> glyph
> > > > >>>>>> with operator XOR and a red source?
> > > > >>>>>
> > > > >>>>>
> > > > >>>>> The red source is ignored for color glyphs because they
> > are
> > > > used as the
> > > > >>>>> source.
> > > > >>>>
> > > > >>>> Hi again,
> > > > >>>>
> > > > >>>> I just came up with another question: How are overlapping
> > > > glyphs handled?
> > > > >>>>
> > > > >>>> Let's say I have a red glyph and a blue glyph and I draw
> > them
> > > > in such a
> > > > >>>> way that they overlap. Let's say this additionally
> > overlaps
> > > > with a
> > > > >>>> non-colored glyph in the same position and I use a green
> > > > source with 50%
> > > > >>>> alpha (cairo_set_source_rgba(cr, 0, 1, 0, 0.5)).
> > > > >>>>
> > > > >>>> What's the visible result?
> > > > >>>>
> > > > >>>>
> > > > >>> Here is what my implementation does: It renders the color
> > > > glyphs, in
> > > > >>> order, followed by the non-color glyphs.
> > > > >>>
> > > > >>> In practice, I don't think the case of mixed color and non-
> > > > color glyphs
> > > > >>> in the same call will be all that common.
> > > > >>> Most apps will explicitly set a color font just for the
> > emoji
> > > > and they
> > > > >>> won't render regular text with an emoji font,
> > > > >>> with the result that runs of color glyphs and non-color
> > glyphs
> > > > will
> > > > >>> typically be in separate calls.
> > > > >>>
> > > > >>
> > > > >>
> > > > >>
> > > > >> --
> > > > >> behdad
> > > > >> http://behdad.org/
> > > > >>
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > "Why make things difficult, when it is possible to make them
> > > > cryptic
> > > > and totally illogical, with just a little bit more effort?" --
> > A.
> > > > P. J.
> > >
> > >
> > >
> > > _______________________________________________
> > > gtk-devel-list mailing list
> > > [email protected]
> > > https://mail.gnome.org/mailman/listinfo/gtk-devel-list
> 
> 
> 
_______________________________________________
gtk-devel-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtk-devel-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.