comparison src/redisplay-output.c @ 70:131b0175ea99 r20-0b30

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents 56c54cf7c5b6
children 6a378aca36af
comparison
equal deleted inserted replaced
69:804d1389bcd6 70:131b0175ea99
331 /* If the new block type is not text and the cursor status is 331 /* If the new block type is not text and the cursor status is
332 changing and it overlaps the position of this block then force a 332 changing and it overlaps the position of this block then force a
333 full redraw of the block in order to make sure that the cursor is 333 full redraw of the block in order to make sure that the cursor is
334 updated properly. */ 334 updated properly. */
335 if (ddb->type != TEXT 335 if (ddb->type != TEXT
336 #if 0
337 /* I'm not sure exactly what this code wants to do, but it's
338 * not right--it doesn't update when cursor_elt changes from, e.g.,
339 * 0 to 8, and the new or old cursor loc overlaps this block.
340 * I've replaced it with the more conservative test below.
341 * -dkindred@cs.cmu.edu 23-Mar-1997 */
342 && ((cdl->cursor_elt == -1 && ddl->cursor_elt != -1) 336 && ((cdl->cursor_elt == -1 && ddl->cursor_elt != -1)
343 || (cdl->cursor_elt != -1 && ddl->cursor_elt == -1)) 337 || (cdl->cursor_elt != -1 && ddl->cursor_elt == -1))
344 && (ddl->cursor_elt == -1 || 338 && (ddl->cursor_elt == -1 ||
345 (cursor_start 339 (cursor_start
346 && cursor_width 340 && cursor_width
347 && (cursor_start + cursor_width) >= start_pixpos 341 && (cursor_start + cursor_width) >= start_pixpos
348 && cursor_start <= block_end)) 342 && cursor_start <= block_end)))
349 #else
350 && (cdl->cursor_elt != ddl->cursor_elt)
351 #endif
352 )
353 force = 1; 343 force = 1;
354 344
355 if (f->windows_structure_changed || 345 if (f->windows_structure_changed ||
356 f->faces_changed || 346 f->faces_changed ||
357 cdl->ypos != ddl->ypos || 347 cdl->ypos != ddl->ypos ||
1148 though, because this routine could cause a change which has a 1138 though, because this routine could cause a change which has a
1149 larger impact on their sizing. */ 1139 larger impact on their sizing. */
1150 /* #### See if we can get away with only calling this if 1140 /* #### See if we can get away with only calling this if
1151 max_line_len is greater than the window_char_width. */ 1141 max_line_len is greater than the window_char_width. */
1152 #ifdef HAVE_SCROLLBARS 1142 #ifdef HAVE_SCROLLBARS
1153 { 1143 update_window_scrollbars (w, NULL, 1, 1);
1154 extern int stupid_vertical_scrollbar_drag_hack;
1155
1156 update_window_scrollbars (w, NULL, 1, stupid_vertical_scrollbar_drag_hack);
1157 stupid_vertical_scrollbar_drag_hack = 1;
1158 }
1159 #endif 1144 #endif
1160 1145
1161 /* This has to be done after we've updated the values. We don't 1146 /* This has to be done after we've updated the values. We don't
1162 call output_end for tty frames. Redisplay will do this after all 1147 call output_end for tty frames. Redisplay will do this after all
1163 tty windows have been updated. This cuts down on cursor 1148 tty windows have been updated. This cuts down on cursor