comparison src/redisplay-output.c @ 388:aabb7f5b1c81 r21-2-9

Import from CVS: tag r21-2-9
author cvs
date Mon, 13 Aug 2007 11:09:42 +0200
parents bbff43aa5eb7
children 74fd4e045ea6
comparison
equal deleted inserted replaced
387:f892a9d0bb8d 388:aabb7f5b1c81
39 39
40 static int compare_runes (struct window *w, struct rune *crb, 40 static int compare_runes (struct window *w, struct rune *crb,
41 struct rune *drb); 41 struct rune *drb);
42 static void redraw_cursor_in_window (struct window *w, 42 static void redraw_cursor_in_window (struct window *w,
43 int run_end_begin_glyphs); 43 int run_end_begin_glyphs);
44 static void redisplay_output_display_block (struct window *w, struct display_line *dl,
45 int block, int start, int end, int start_pixpos,
46 int cursor_start, int cursor_width,
47 int cursor_height);
44 48
45 /***************************************************************************** 49 /*****************************************************************************
46 sync_rune_structs 50 sync_rune_structs
47 51
48 Synchronize the given rune blocks. 52 Synchronize the given rune blocks.
300 struct display_line *ddl, int c_block, int d_block, 304 struct display_line *ddl, int c_block, int d_block,
301 int start_pixpos, int cursor_start, int cursor_width, 305 int start_pixpos, int cursor_start, int cursor_width,
302 int cursor_height) 306 int cursor_height)
303 { 307 {
304 struct frame *f = XFRAME (w->frame); 308 struct frame *f = XFRAME (w->frame);
305 struct device *d = XDEVICE (f->device);
306
307 struct display_block *cdb, *ddb; 309 struct display_block *cdb, *ddb;
308 int start_pos; 310 int start_pos;
309 int stop_pos; 311 int stop_pos;
310 int force = 0; 312 int force = 0;
311 int block_end; 313 int block_end;
411 elt--; 413 elt--;
412 } 414 }
413 stop_pos = elt + 1; 415 stop_pos = elt + 1;
414 } 416 }
415 417
416 DEVMETH (d, output_display_block, (w, ddl, d_block, start_pos, 418 redisplay_output_display_block (w, ddl, d_block, start_pos,
417 stop_pos, start_pixpos, 419 stop_pos, start_pixpos,
418 cursor_start, cursor_width, 420 cursor_start, cursor_width,
419 cursor_height)); 421 cursor_height);
420 return 1; 422 return 1;
421 } 423 }
422 424
423 return 0; 425 return 0;
424 } 426 }
469 display_line_dynarr *ddla, int line, int force_start, 471 display_line_dynarr *ddla, int line, int force_start,
470 int force_end) 472 int force_end)
471 473
472 { 474 {
473 struct frame *f = XFRAME (w->frame); 475 struct frame *f = XFRAME (w->frame);
474 struct device *d = XDEVICE (f->device);
475 struct buffer *b = XBUFFER (w->buffer); 476 struct buffer *b = XBUFFER (w->buffer);
476 struct buffer *old_b = window_display_buffer (w); 477 struct buffer *old_b = window_display_buffer (w);
477 struct display_line *cdl, *ddl; 478 struct display_line *cdl, *ddl;
478 display_block_dynarr *cdba, *ddba; 479 display_block_dynarr *cdba, *ddba;
479 int start_pixpos, end_pixpos; 480 int start_pixpos, end_pixpos;
540 must_sync |= compare_display_blocks (w, cdl, ddl, 0, 0, 541 must_sync |= compare_display_blocks (w, cdl, ddl, 0, 0,
541 start_pixpos, 0, 0, 0); 542 start_pixpos, 0, 0, 0);
542 } 543 }
543 else 544 else
544 { 545 {
545 DEVMETH (d, output_display_block, (w, ddl, 0, 0, -1, start_pixpos, 546 redisplay_output_display_block (w, ddl, 0, 0, -1, start_pixpos,
546 0, 0, 0)); 547 0, 0, 0);
547 must_sync = 1; 548 must_sync = 1;
548 } 549 }
549 550
550 if (must_sync) 551 if (must_sync)
551 clear_border = 1; 552 clear_border = 1;
677 break; 678 break;
678 } 679 }
679 } 680 }
680 681
681 must_sync = 1; 682 must_sync = 1;
682 DEVMETH (d, output_display_block, (w, ddl, block, first_elt, 683 redisplay_output_display_block (w, ddl, block, first_elt,
683 last_elt, 684 last_elt,
684 start_pixpos, 685 start_pixpos,
685 cursor_start, cursor_width, 686 cursor_start, cursor_width,
686 cursor_height)); 687 cursor_height);
687 } 688 }
688 689
689 start_pixpos = next_start_pixpos; 690 start_pixpos = next_start_pixpos;
690 } 691 }
691 } 692 }
692 693
693 /* Clear the internal border if we are next to it and the window 694 /* Clear the internal border if we are next to it and the window
980 981
981 redraw_cursor_in_window (XWINDOW (window), run_end_begin_meths); 982 redraw_cursor_in_window (XWINDOW (window), run_end_begin_meths);
982 } 983 }
983 984
984 /**************************************************************************** 985 /****************************************************************************
986 redisplay_output_display_block
987
988 Given a display line, a block number for that start line, output all
989 runes between start and end in the specified display block.
990 ****************************************************************************/
991 static void
992 redisplay_output_display_block (struct window *w, struct display_line *dl, int block,
993 int start, int end, int start_pixpos, int cursor_start,
994 int cursor_width, int cursor_height)
995 {
996 struct frame *f = XFRAME (w->frame);
997 struct device *d = XDEVICE (f->device);
998
999 DEVMETH (d, output_display_block, (w, dl, block, start,
1000 end, start_pixpos,
1001 cursor_start, cursor_width,
1002 cursor_height));
1003 }
1004
1005 /****************************************************************************
985 redisplay_unmap_subwindows 1006 redisplay_unmap_subwindows
986 1007
987 Remove subwindows from the area in the box defined by the given 1008 Remove subwindows from the area in the box defined by the given
988 parameters. 1009 parameters.
989 ****************************************************************************/ 1010 ****************************************************************************/
1002 && 1023 &&
1003 cachel->y + cachel->height > y && cachel->y < y + height) 1024 cachel->y + cachel->height > y && cachel->y < y + height)
1004 { 1025 {
1005 unmap_subwindow (cachel->subwindow); 1026 unmap_subwindow (cachel->subwindow);
1006 } 1027 }
1028 }
1029 }
1030
1031 /****************************************************************************
1032 redisplay_unmap_subwindows_maybe
1033
1034 Potentially subwindows from the area in the box defined by the given
1035 parameters.
1036 ****************************************************************************/
1037 void redisplay_unmap_subwindows_maybe (struct frame* f, int x, int y, int width, int height)
1038 {
1039 if (Dynarr_length (FRAME_SUBWINDOW_CACHE (f)))
1040 {
1041 redisplay_unmap_subwindows (f, x, y, width, height);
1007 } 1042 }
1008 } 1043 }
1009 1044
1010 /**************************************************************************** 1045 /****************************************************************************
1011 redisplay_output_subwindow 1046 redisplay_output_subwindow