This makes layout a little more sane. Still not sane enough for progress
gauges for font-lock ....
I strongly believe there is some GC wierdness with the subwindow stuff
which is causing the reported crashes. I have an idea what it is. Stay tuned.
andy
2000-02-13 Andy Piper <andy(a)xemacs.org>
* redisplay.c (add_glyph_rune): call get_glyph_cachel_index here
to make sure the glyph is in the cachels.
* glyphs.h (struct Lisp_Image_Instance): make layout_changed a
global image instance flag.
(IMAGE_INSTANCE_NEEDS_LAYOUT): new macro.
(XIMAGE_INSTANCE_NEEDS_LAYOUT): ditto.
* glyphs.c (allocate_image_instance): set dirty bits correctly.
(Fset_image_instance_property): mark layout as changed.
(invalidate_glyph_geometry_maybe): mark layout as changed.
(glyph_width): use new NEEDS_LAYOUT macro.
(glyph_ascent): ditto.
(glyph_descent): ditto.
(glyph_height): ditto.
(image_instance_layout): mark layout as clean after laying out.
(update_subwindow): don't mark layout as clean here.
* glyphs-x.h (IMAGE_INSTANCE_X_WIDGET_ID): undo C++ changes, they
should no longer be needed.
* glyphs-x.c (x_update_widget): sanitize asserts.
(x_finalize_image_instance): sanitize assignment to widgets.
* glyphs-widget.c (widget_instantiate): don't need to clear the
layout flag here.
--------------------------------------------------------------
Dr Andy Piper
Senior Consultant Architect, BEA Systems Ltd
Show replies by date