int start_pos;
int stop_pos;
int force = 0;
- int block_end;
cdb = Dynarr_atp(cdl->display_blocks, c_block);
ddb = Dynarr_atp(ddl->display_blocks, d_block);
start_pos = -1;
stop_pos = min(Dynarr_length(cdb->runes), Dynarr_length(ddb->runes));
- block_end = (!Dynarr_length(ddb->runes)
- ? 0
- : (Dynarr_atp(ddb->runes, Dynarr_length(ddb->runes) - 1)->
- xpos + Dynarr_atp(ddb->runes,
- Dynarr_length(ddb->runes) -
- 1)->width));
-
/* If the new block type is not text and the cursor status is
changing and it overlaps the position of this block then force a
full redraw of the block in order to make sure that the cursor is
updated properly. */
- if (ddb->type != TEXT
-#if 0
- /* I'm not sure exactly what this code wants to do, but it's
- * not right--it doesn't update when cursor_elt changes from, e.g.,
- * 0 to 8, and the new or old cursor loc overlaps this block.
- * I've replaced it with the more conservative test below.
- * -dkindred@cs.cmu.edu 23-Mar-1997 */
- && ((cdl->cursor_elt == -1 && ddl->cursor_elt != -1)
- || (cdl->cursor_elt != -1 && ddl->cursor_elt == -1))
- && (ddl->cursor_elt == -1 ||
- (cursor_start
- && cursor_width
- && (cursor_start + cursor_width) >= start_pixpos
- && cursor_start <= block_end))
-#else
- && (cdl->cursor_elt != ddl->cursor_elt)
-#endif
- )
- force = 1;
+ if (ddb->type != TEXT && (cdl->cursor_elt != ddl->cursor_elt))
+ force = 1;
if (f->windows_structure_changed ||
/* #### Why is this so? We have face cachels so that we don't
/* This shrinks the display box to exactly enclose the glyph
area. */
redisplay_normalize_display_box(db, dga);
- buf = Dynarr_new(Emchar);
+ buf = Dynarr_new(Emchar);
/* Flip through the widgets in the layout displaying as necessary */
LIST_LOOP(rest, IMAGE_INSTANCE_LAYOUT_CHILDREN(p)) {
Lisp_Object child =
xpos - absolute horizontal position of area.
- ypos - absolute vertical position of area.
+ ypos - absolute vertical position of area.
glyphsrc - display_glyph_area