1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-30 10:11:47 -07:00

Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-114

Merge some minor redisplay bug-fixes from emacs--tiling--0

Patches applied:

 * miles@gnu.org--gnu-2004/emacs--tiling--0--patch-9
   Remove bogus xassert

 * miles@gnu.org--gnu-2004/emacs--tiling--0--patch-10
   Avoid negative descents for images with ascent > height

 * miles@gnu.org--gnu-2004/emacs--tiling--0--patch-13
   Fix iterator-inconsistency bug in redisplay
This commit is contained in:
Miles Bader 2004-02-25 12:54:16 +00:00
parent b9db45677a
commit 7d8a0b5551
3 changed files with 29 additions and 5 deletions

View file

@ -1,3 +1,17 @@
2004-02-25 Miles Bader <miles@gnu.org>
* xdisp.c (check_it): Check string/string_pos consistency.
(init_iterator): Initialize string-related fields properly.
2004-02-11 Miles Bader <miles@gnu.org>
* xdisp.c (produce_image_glyph): Force negative descents to zero.
2004-02-10 Miles Bader <miles@gnu.org>
* xfns.c (lookup_image): Remove xassert(!interrupt_input_blocked);
BLOCK_INPUT can be nested, so it doesn't make much sense.
2004-02-24 Michael Mauger <mmaug@yahoo.com>
* w32fns.c (slurp_file, xbm_scan, xbm_load_image)

View file

@ -1904,10 +1904,14 @@ check_it (it)
xassert (STRINGP (it->string));
xassert (IT_STRING_CHARPOS (*it) >= 0);
}
else if (it->method == next_element_from_buffer)
else
{
/* Check that character and byte positions agree. */
xassert (IT_CHARPOS (*it) == BYTE_TO_CHAR (IT_BYTEPOS (*it)));
xassert (IT_STRING_CHARPOS (*it) < 0);
if (it->method == next_element_from_buffer)
{
/* Check that character and byte positions agree. */
xassert (IT_CHARPOS (*it) == BYTE_TO_CHAR (IT_BYTEPOS (*it)));
}
}
if (it->dpvec)
@ -2020,6 +2024,8 @@ init_iterator (it, w, charpos, bytepos, row, base_face_id)
it->current.overlay_string_index = -1;
it->current.dpvec_index = -1;
it->base_face_id = base_face_id;
it->string = Qnil;
IT_STRING_CHARPOS (*it) = IT_STRING_BYTEPOS (*it) = -1;
/* The window in which we iterate over current_buffer: */
XSETWINDOW (it->window, w);
@ -17685,6 +17691,11 @@ produce_image_glyph (it)
it->descent = it->phys_descent = img->height + 2 * img->vmargin - it->ascent;
it->pixel_width = img->width + 2 * img->hmargin;
/* It's quite possible for images to have an ascent greater than
their height, so don't get confused in that case. */
if (it->descent < 0)
it->descent = 0;
/* If this glyph is alone on the last line, adjust it.ascent to minimum row ascent. */
face_ascent = face->font ? FONT_BASE (face->font) : FRAME_BASELINE_OFFSET (it->f);
if (face_ascent > it->ascent)

View file

@ -1,5 +1,5 @@
/* Functions for the X window system.
Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 01, 02, 03
Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000,01,02,03,04
Free Software Foundation.
This file is part of GNU Emacs.
@ -5315,7 +5315,6 @@ lookup_image (f, spec)
}
UNBLOCK_INPUT;
xassert (!interrupt_input_blocked);
}
/* We're using IMG, so set its timestamp to `now'. */