(Qslice): New variable.
(syms_of_xdisp): Intern and staticpro it. (pos_visible_p): Return pixel position in new x and y args. (init_iterator): Reset it->slice info. (handle_display_prop): Parse (slice ...) property. (push_it, pop_it): Save/restore slice info. (make_cursor_line_fully_visible): Fix 2004-04-14 change. Do not force repositioning of tall row if window is vscrolled, as that would reset vscroll. (append_space): Set it->constrain_row_ascent_descent_p to avoid increasing row height if row is non-empty. (fill_image_glyph_string): Copy slice info. (take_vertical_position_into_account): Simplify. (produce_image_glyph): Handle iterator slice info, setup glyph slice info. Do not force minimum line height. (x_produce_glyphs): If it->constrain_row_ascent_descent_p is set, do not increase height (ascent/descent) of non-empty row when adding normal character glyph; instead reduce glyph ascent/descent appropriately; if row is higher than current glyph, adjust glyph descent/ascent to reposition glyph within the existing row. Likewise, when char is newline, only set ascent/descent if row is currently empty. (note_mouse_highlight): Handle hotspots with sliced image.
Showing with 173 additions and 25 deletions