comparison src/xterm.c @ 40076:d505fb8b523f

(x_fix_overlapping_area, x_write_glyphs, expose_area) (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field. (XTreassert_line_highlight, x_change_line_highlight): Functions removed. (x_initialize): Don't set reassert_line_highlight_hook or change_line_highlight_hook.
author Miles Bader <miles@gnu.org>
date Sat, 20 Oct 2001 05:44:30 +0000
parents eac4e9ae201c
children 7c57640154a5
comparison
equal deleted inserted replaced
40075:c1d88076fa85 40076:d505fb8b523f
434 static void x_draw_phys_cursor_glyph P_ ((struct window *, 434 static void x_draw_phys_cursor_glyph P_ ((struct window *,
435 struct glyph_row *, 435 struct glyph_row *,
436 enum draw_glyphs_face)); 436 enum draw_glyphs_face));
437 static void x_update_end P_ ((struct frame *)); 437 static void x_update_end P_ ((struct frame *));
438 static void XTframe_up_to_date P_ ((struct frame *)); 438 static void XTframe_up_to_date P_ ((struct frame *));
439 static void XTreassert_line_highlight P_ ((int, int));
440 static void x_change_line_highlight P_ ((int, int, int, int));
441 static void XTset_terminal_modes P_ ((void)); 439 static void XTset_terminal_modes P_ ((void));
442 static void XTreset_terminal_modes P_ ((void)); 440 static void XTreset_terminal_modes P_ ((void));
443 static void XTcursor_to P_ ((int, int, int, int)); 441 static void XTcursor_to P_ ((int, int, int, int));
444 static void x_write_glyphs P_ ((struct glyph *, int)); 442 static void x_write_glyphs P_ ((struct glyph *, int));
445 static void x_clear_end_of_line P_ ((int)); 443 static void x_clear_end_of_line P_ ((int));
1020 if (bitmap != NO_BITMAP) 1018 if (bitmap != NO_BITMAP)
1021 x_draw_bitmap (w, row, bitmap); 1019 x_draw_bitmap (w, row, bitmap);
1022 } 1020 }
1023 1021
1024 1022
1025 /***********************************************************************
1026 Line Highlighting
1027 ***********************************************************************/
1028
1029 /* External interface to control of standout mode. Not used for X
1030 frames. Aborts when called. */
1031
1032 static void
1033 XTreassert_line_highlight (new, vpos)
1034 int new, vpos;
1035 {
1036 abort ();
1037 }
1038
1039
1040 /* Call this when about to modify line at position VPOS and change
1041 whether it is highlighted. Not used for X frames. Aborts when
1042 called. */
1043
1044 static void
1045 x_change_line_highlight (new_highlight, vpos, y, first_unused_hpos)
1046 int new_highlight, vpos, y, first_unused_hpos;
1047 {
1048 abort ();
1049 }
1050
1051 1023
1052 /* This is called when starting Emacs and when restarting after 1024 /* This is called when starting Emacs and when restarting after
1053 suspend. When starting Emacs, no X window is mapped. And nothing 1025 suspend. When starting Emacs, no X window is mapped. And nothing
1054 must be done to Emacs's own window if it is suspended (though that 1026 must be done to Emacs's own window if it is suspended (though that
1055 rarely happens). */ 1027 rarely happens). */
5269 } 5241 }
5270 while (i < row->used[area] 5242 while (i < row->used[area]
5271 && row->glyphs[area][i].overlaps_vertically_p); 5243 && row->glyphs[area][i].overlaps_vertically_p);
5272 5244
5273 x_draw_glyphs (w, start_x, row, area, start, i, 5245 x_draw_glyphs (w, start_x, row, area, start, i,
5274 (row->inverse_p 5246 DRAW_NORMAL_TEXT, NULL, NULL, 1);
5275 ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT),
5276 NULL, NULL, 1);
5277 } 5247 }
5278 else 5248 else
5279 { 5249 {
5280 x += row->glyphs[area][i].pixel_width; 5250 x += row->glyphs[area][i].pixel_width;
5281 ++i; 5251 ++i;
5306 5276
5307 hpos = start - updated_row->glyphs[updated_area]; 5277 hpos = start - updated_row->glyphs[updated_area];
5308 x = x_draw_glyphs (updated_window, output_cursor.x, 5278 x = x_draw_glyphs (updated_window, output_cursor.x,
5309 updated_row, updated_area, 5279 updated_row, updated_area,
5310 hpos, hpos + len, 5280 hpos, hpos + len,
5311 (updated_row->inverse_p 5281 DRAW_NORMAL_TEXT,
5312 ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT),
5313 &real_start, &real_end, 0); 5282 &real_start, &real_end, 0);
5314 5283
5315 /* If we drew over the cursor, note that it is not visible any more. */ 5284 /* If we drew over the cursor, note that it is not visible any more. */
5316 notice_overwritten_cursor (updated_window, real_start, 5285 notice_overwritten_cursor (updated_window, real_start,
5317 real_end - real_start); 5286 real_end - real_start);
5935 struct glyph *last; 5904 struct glyph *last;
5936 int first_x, start_x, x; 5905 int first_x, start_x, x;
5937 5906
5938 if (area == TEXT_AREA && row->fill_line_p) 5907 if (area == TEXT_AREA && row->fill_line_p)
5939 /* If row extends face to end of line write the whole line. */ 5908 /* If row extends face to end of line write the whole line. */
5940 x_draw_glyphs (w, 0, row, area, 5909 x_draw_glyphs (w, 0, row, area, 0, row->used[area],
5941 0, row->used[area], 5910 DRAW_NORMAL_TEXT, NULL, NULL, 0);
5942 row->inverse_p ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT,
5943 NULL, NULL, 0);
5944 else 5911 else
5945 { 5912 {
5946 /* Set START_X to the window-relative start position for drawing glyphs of 5913 /* Set START_X to the window-relative start position for drawing glyphs of
5947 AREA. The first glyph of the text area can be partially visible. 5914 AREA. The first glyph of the text area can be partially visible.
5948 The first glyphs of other areas cannot. */ 5915 The first glyphs of other areas cannot. */
5976 /* Repaint. */ 5943 /* Repaint. */
5977 if (last > first) 5944 if (last > first)
5978 x_draw_glyphs (w, first_x - start_x, row, area, 5945 x_draw_glyphs (w, first_x - start_x, row, area,
5979 first - row->glyphs[area], 5946 first - row->glyphs[area],
5980 last - row->glyphs[area], 5947 last - row->glyphs[area],
5981 row->inverse_p ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT, 5948 DRAW_NORMAL_TEXT,
5982 NULL, NULL, 0); 5949 NULL, NULL, 0);
5983 } 5950 }
5984 } 5951 }
5985 5952
5986 5953
5996 { 5963 {
5997 xassert (row->enabled_p); 5964 xassert (row->enabled_p);
5998 5965
5999 if (row->mode_line_p || w->pseudo_window_p) 5966 if (row->mode_line_p || w->pseudo_window_p)
6000 x_draw_glyphs (w, 0, row, TEXT_AREA, 0, row->used[TEXT_AREA], 5967 x_draw_glyphs (w, 0, row, TEXT_AREA, 0, row->used[TEXT_AREA],
6001 row->inverse_p ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT, 5968 DRAW_NORMAL_TEXT, NULL, NULL, 0);
6002 NULL, NULL, 0);
6003 else 5969 else
6004 { 5970 {
6005 if (row->used[LEFT_MARGIN_AREA]) 5971 if (row->used[LEFT_MARGIN_AREA])
6006 expose_area (w, row, r, LEFT_MARGIN_AREA); 5972 expose_area (w, row, r, LEFT_MARGIN_AREA);
6007 if (row->used[TEXT_AREA]) 5973 if (row->used[TEXT_AREA])
11457 } 11423 }
11458 11424
11459 /* Erase the cursor by redrawing the character underneath it. */ 11425 /* Erase the cursor by redrawing the character underneath it. */
11460 if (mouse_face_here_p) 11426 if (mouse_face_here_p)
11461 hl = DRAW_MOUSE_FACE; 11427 hl = DRAW_MOUSE_FACE;
11462 else if (cursor_row->inverse_p)
11463 hl = DRAW_INVERSE_VIDEO;
11464 else 11428 else
11465 hl = DRAW_NORMAL_TEXT; 11429 hl = DRAW_NORMAL_TEXT;
11466 x_draw_phys_cursor_glyph (w, cursor_row, hl); 11430 x_draw_phys_cursor_glyph (w, cursor_row, hl);
11467 11431
11468 mark_cursor_off: 11432 mark_cursor_off:
14687 { 14651 {
14688 rif = &x_redisplay_interface; 14652 rif = &x_redisplay_interface;
14689 14653
14690 clear_frame_hook = x_clear_frame; 14654 clear_frame_hook = x_clear_frame;
14691 ins_del_lines_hook = x_ins_del_lines; 14655 ins_del_lines_hook = x_ins_del_lines;
14692 change_line_highlight_hook = x_change_line_highlight;
14693 delete_glyphs_hook = x_delete_glyphs; 14656 delete_glyphs_hook = x_delete_glyphs;
14694 ring_bell_hook = XTring_bell; 14657 ring_bell_hook = XTring_bell;
14695 reset_terminal_modes_hook = XTreset_terminal_modes; 14658 reset_terminal_modes_hook = XTreset_terminal_modes;
14696 set_terminal_modes_hook = XTset_terminal_modes; 14659 set_terminal_modes_hook = XTset_terminal_modes;
14697 update_begin_hook = x_update_begin; 14660 update_begin_hook = x_update_begin;
14698 update_end_hook = x_update_end; 14661 update_end_hook = x_update_end;
14699 set_terminal_window_hook = XTset_terminal_window; 14662 set_terminal_window_hook = XTset_terminal_window;
14700 read_socket_hook = XTread_socket; 14663 read_socket_hook = XTread_socket;
14701 frame_up_to_date_hook = XTframe_up_to_date; 14664 frame_up_to_date_hook = XTframe_up_to_date;
14702 reassert_line_highlight_hook = XTreassert_line_highlight;
14703 mouse_position_hook = XTmouse_position; 14665 mouse_position_hook = XTmouse_position;
14704 frame_rehighlight_hook = XTframe_rehighlight; 14666 frame_rehighlight_hook = XTframe_rehighlight;
14705 frame_raise_lower_hook = XTframe_raise_lower; 14667 frame_raise_lower_hook = XTframe_raise_lower;
14706 set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar; 14668 set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
14707 condemn_scroll_bars_hook = XTcondemn_scroll_bars; 14669 condemn_scroll_bars_hook = XTcondemn_scroll_bars;