comparison src/xdisp.c @ 9572:b36d5e88cccc

*** empty log message ***
author Morten Welinder <terra@diku.dk>
date Mon, 17 Oct 1994 08:42:36 +0000
parents a605bfe5bf8a
children 976ef7da7753
comparison
equal deleted inserted replaced
9571:b37425ecb3f0 9572:b36d5e88cccc
740 740
741 if (all_windows) 741 if (all_windows)
742 { 742 {
743 Lisp_Object tail, frame; 743 Lisp_Object tail, frame;
744 744
745 #ifdef HAVE_X_WINDOWS 745 #ifdef HAVE_FACES
746 /* Clear the face cache, only when we do a full redisplay 746 /* Clear the face cache, only when we do a full redisplay
747 and not too often either. */ 747 and not too often either. */
748 if (clear_face_cache_count > 1000) 748 if (clear_face_cache_count > 1000)
749 { 749 {
750 clear_face_cache (); 750 clear_face_cache ();
1957 register Lisp_Object *fp = from; 1957 register Lisp_Object *fp = from;
1958 /* These cache the results of the last call to compute_glyph_face. */ 1958 /* These cache the results of the last call to compute_glyph_face. */
1959 int last_code = -1; 1959 int last_code = -1;
1960 int last_merged = 0; 1960 int last_merged = 0;
1961 1961
1962 #ifdef HAVE_X_WINDOWS 1962 #ifdef HAVE_FACES
1963 if (! FRAME_TERMCAP_P (f)) 1963 if (! FRAME_TERMCAP_P (f))
1964 while (n--) 1964 while (n--)
1965 { 1965 {
1966 int glyph = (INTEGERP (*fp) ? XFASTINT (*fp) : 0); 1966 int glyph = (INTEGERP (*fp) ? XFASTINT (*fp) : 0);
1967 int facecode; 1967 int facecode;
2002 fix_glyph (f, glyph, cface) 2002 fix_glyph (f, glyph, cface)
2003 FRAME_PTR f; 2003 FRAME_PTR f;
2004 GLYPH glyph; 2004 GLYPH glyph;
2005 int cface; 2005 int cface;
2006 { 2006 {
2007 #ifdef HAVE_X_WINDOWS 2007 #ifdef HAVE_FACES
2008 if (! FRAME_TERMCAP_P (f)) 2008 if (! FRAME_TERMCAP_P (f))
2009 { 2009 {
2010 if (FAST_GLYPH_FACE (glyph) != 0) 2010 if (FAST_GLYPH_FACE (glyph) != 0)
2011 cface = compute_glyph_face (f, FAST_GLYPH_FACE (glyph), cface); 2011 cface = compute_glyph_face (f, FAST_GLYPH_FACE (glyph), cface);
2012 glyph = FAST_MAKE_GLYPH (FAST_GLYPH_CHAR (glyph), cface); 2012 glyph = FAST_MAKE_GLYPH (FAST_GLYPH_CHAR (glyph), cface);
2271 } 2271 }
2272 if (pos >= end) 2272 if (pos >= end)
2273 break; 2273 break;
2274 #endif 2274 #endif
2275 2275
2276 #ifdef HAVE_X_WINDOWS 2276 #ifdef HAVE_FACES
2277 /* Did we hit a face change? Figure out what face we should 2277 /* Did we hit a face change? Figure out what face we should
2278 use now. We also hit this the first time through the 2278 use now. We also hit this the first time through the
2279 loop, to see what face we should start with. */ 2279 loop, to see what face we should start with. */
2280 if (pos >= next_face_change && FRAME_X_P (f)) 2280 if (pos >= next_face_change && FRAME_X_P (f))
2281 current_face = compute_char_face (f, w, pos, 2281 current_face = compute_char_face (f, w, pos,
2327 if (p1 - leftmargin > width) 2327 if (p1 - leftmargin > width)
2328 p1 = endp; 2328 p1 = endp;
2329 copy_part_of_rope (f, p1prev, p1prev, invis_vector_contents, 2329 copy_part_of_rope (f, p1prev, p1prev, invis_vector_contents,
2330 (p1 - p1prev), current_face); 2330 (p1 - p1prev), current_face);
2331 } 2331 }
2332 #ifdef HAVE_X_WINDOWS 2332 #ifdef HAVE_FACES
2333 /* Draw the face of the newline character as extending all the 2333 /* Draw the face of the newline character as extending all the
2334 way to the end of the frame line. */ 2334 way to the end of the frame line. */
2335 if (current_face) 2335 if (current_face)
2336 { 2336 {
2337 if (p1 < leftmargin) 2337 if (p1 < leftmargin)
2364 if (p1 - leftmargin > width) 2364 if (p1 - leftmargin > width)
2365 p1 = endp; 2365 p1 = endp;
2366 copy_part_of_rope (f, p1prev, p1prev, invis_vector_contents, 2366 copy_part_of_rope (f, p1prev, p1prev, invis_vector_contents,
2367 (p1 - p1prev), current_face); 2367 (p1 - p1prev), current_face);
2368 } 2368 }
2369 #ifdef HAVE_X_WINDOWS 2369 #ifdef HAVE_FACES
2370 /* Draw the face of the newline character as extending all the 2370 /* Draw the face of the newline character as extending all the
2371 way to the end of the frame line. */ 2371 way to the end of the frame line. */
2372 if (current_face) 2372 if (current_face)
2373 { 2373 {
2374 if (p1 < leftmargin) 2374 if (p1 < leftmargin)
2605 int len = XSTRING (Voverlay_arrow_string)->size; 2605 int len = XSTRING (Voverlay_arrow_string)->size;
2606 int arrow_end; 2606 int arrow_end;
2607 2607
2608 if (len > width) 2608 if (len > width)
2609 len = width; 2609 len = width;
2610 #ifdef HAVE_X_WINDOWS 2610 #ifdef HAVE_FACES
2611 if (!NULL_INTERVAL_P (XSTRING (Voverlay_arrow_string)->intervals)) 2611 if (!NULL_INTERVAL_P (XSTRING (Voverlay_arrow_string)->intervals))
2612 { 2612 {
2613 /* If the arrow string has text props, obey them when displaying. */ 2613 /* If the arrow string has text props, obey them when displaying. */
2614 for (i = 0; i < len; i++) 2614 for (i = 0; i < len; i++)
2615 { 2615 {
2622 newface = compute_glyph_face_1 (f, face, 0); 2622 newface = compute_glyph_face_1 (f, face, 0);
2623 leftmargin[i] = FAST_MAKE_GLYPH (c, newface); 2623 leftmargin[i] = FAST_MAKE_GLYPH (c, newface);
2624 } 2624 }
2625 } 2625 }
2626 else 2626 else
2627 #endif /* HAVE_X_WINDOWS */ 2627 #endif /* HAVE_FACES */
2628 { 2628 {
2629 for (i = 0; i < len; i++) 2629 for (i = 0; i < len; i++)
2630 leftmargin[i] = p[i]; 2630 leftmargin[i] = p[i];
2631 } 2631 }
2632 2632
2725 (which implies that that window is split side-by-side 2725 (which implies that that window is split side-by-side
2726 and the rest of this line is mode lines of the sibling windows). */ 2726 and the rest of this line is mode lines of the sibling windows). */
2727 if (XFASTINT (w->width) == FRAME_WIDTH (f) 2727 if (XFASTINT (w->width) == FRAME_WIDTH (f)
2728 || XFASTINT (XWINDOW (w->parent)->width) == FRAME_WIDTH (f)) 2728 || XFASTINT (XWINDOW (w->parent)->width) == FRAME_WIDTH (f))
2729 FRAME_DESIRED_GLYPHS (f)->highlight[vpos] = mode_line_inverse_video; 2729 FRAME_DESIRED_GLYPHS (f)->highlight[vpos] = mode_line_inverse_video;
2730 #ifdef HAVE_X_WINDOWS 2730 #ifdef HAVE_FACES
2731 else if (! FRAME_TERMCAP_P (f)) 2731 else if (! FRAME_TERMCAP_P (f))
2732 { 2732 {
2733 /* For a partial width window, explicitly set face of each glyph. */ 2733 /* For a partial width window, explicitly set face of each glyph. */
2734 int i; 2734 int i;
2735 GLYPH *ptr = FRAME_DESIRED_GLYPHS (f)->glyphs[vpos]; 2735 GLYPH *ptr = FRAME_DESIRED_GLYPHS (f)->glyphs[vpos];