Mercurial > hg > xemacs-beta
comparison src/redisplay-x.c @ 269:b2472a1930f2 r20-5b33
Import from CVS: tag r20-5b33
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:27:19 +0200 |
parents | 11cf20601dec |
children | c5d627a313b1 |
comparison
equal
deleted
inserted
replaced
268:6ced69ccd85f | 269:b2472a1930f2 |
---|---|
84 static void x_redraw_exposed_windows (Lisp_Object window, int x, int y, | 84 static void x_redraw_exposed_windows (Lisp_Object window, int x, int y, |
85 int width, int height); | 85 int width, int height); |
86 static void x_clear_region (Lisp_Object window, face_index findex, int x, | 86 static void x_clear_region (Lisp_Object window, face_index findex, int x, |
87 int y, int width, int height); | 87 int y, int width, int height); |
88 static void x_output_eol_cursor (struct window *w, struct display_line *dl, | 88 static void x_output_eol_cursor (struct window *w, struct display_line *dl, |
89 int xpos); | 89 int xpos, face_index findex); |
90 static void x_clear_frame (struct frame *f); | 90 static void x_clear_frame (struct frame *f); |
91 static void x_clear_frame_windows (Lisp_Object window); | 91 static void x_clear_frame_windows (Lisp_Object window); |
92 static void x_bevel_modeline (struct window *w, struct display_line *dl); | 92 static void x_bevel_modeline (struct window *w, struct display_line *dl); |
93 | 93 |
94 | 94 |
416 | 416 |
417 if (rb->cursor_type == CURSOR_ON) | 417 if (rb->cursor_type == CURSOR_ON) |
418 { | 418 { |
419 if (rb->object.chr.ch == '\n') | 419 if (rb->object.chr.ch == '\n') |
420 { | 420 { |
421 x_output_eol_cursor (w, dl, xpos); | 421 x_output_eol_cursor (w, dl, xpos, findex); |
422 } | 422 } |
423 else | 423 else |
424 { | 424 { |
425 Dynarr_add (buf, rb->object.chr.ch); | 425 Dynarr_add (buf, rb->object.chr.ch); |
426 x_output_string (w, dl, buf, xpos, 0, start_pixpos, | 426 x_output_string (w, dl, buf, xpos, 0, start_pixpos, |
2057 | 2057 |
2058 Draw a cursor at the end of a line. The end-of-line cursor is | 2058 Draw a cursor at the end of a line. The end-of-line cursor is |
2059 narrower than the normal cursor. | 2059 narrower than the normal cursor. |
2060 ****************************************************************************/ | 2060 ****************************************************************************/ |
2061 static void | 2061 static void |
2062 x_output_eol_cursor (struct window *w, struct display_line *dl, int xpos) | 2062 x_output_eol_cursor (struct window *w, struct display_line *dl, int xpos, |
2063 face_index findex) | |
2063 { | 2064 { |
2064 struct frame *f = XFRAME (w->frame); | 2065 struct frame *f = XFRAME (w->frame); |
2065 struct device *d = XDEVICE (f->device); | 2066 struct device *d = XDEVICE (f->device); |
2067 Lisp_Object window; | |
2066 | 2068 |
2067 Display *dpy = DEVICE_X_DISPLAY (d); | 2069 Display *dpy = DEVICE_X_DISPLAY (d); |
2068 Window x_win = XtWindow (FRAME_X_TEXT_WIDGET (f)); | 2070 Window x_win = XtWindow (FRAME_X_TEXT_WIDGET (f)); |
2069 GC gc; | 2071 GC gc; |
2070 face_index elt = get_builtin_face_cache_index (w, Vtext_cursor_face); | 2072 face_index elt = get_builtin_face_cache_index (w, Vtext_cursor_face); |
2079 int width = EOL_CURSOR_WIDTH; | 2081 int width = EOL_CURSOR_WIDTH; |
2080 int height = dl->ascent + dl->descent - dl->clip; | 2082 int height = dl->ascent + dl->descent - dl->clip; |
2081 int cursor_height, cursor_y; | 2083 int cursor_height, cursor_y; |
2082 int defheight, defascent; | 2084 int defheight, defascent; |
2083 | 2085 |
2084 XClearArea (dpy, x_win, x, y, width, height, False); | 2086 XSETWINDOW (window, w); |
2087 x_clear_region (window, findex, x, y, width, height); | |
2085 | 2088 |
2086 if (NILP (w->text_cursor_visible_p)) | 2089 if (NILP (w->text_cursor_visible_p)) |
2087 return; | 2090 return; |
2088 | 2091 |
2089 gc = x_get_gc (d, Qnil, cursor_cachel->background, Qnil, Qnil, Qnil); | 2092 gc = x_get_gc (d, Qnil, cursor_cachel->background, Qnil, Qnil, Qnil); |