diff options
| author | Karoly Lorentey | 2004-01-02 04:22:23 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-01-02 04:22:23 +0000 |
| commit | fa971ac34de80905a91d2af15dd8712329dad273 (patch) | |
| tree | 62b0f8a8ca6df6c126a15f0cabe0d2ddf7642156 /src | |
| parent | 7b00d185eba8e01f191a69740e3270c88f88159c (diff) | |
| download | emacs-fa971ac34de80905a91d2af15dd8712329dad273.tar.gz emacs-fa971ac34de80905a91d2af15dd8712329dad273.zip | |
Got rid of the rif (window-based redisplay interface) global variable.
src/dispextern.h (PRODUCE_GLYPHS): Use the rif in IT->f, not the global rif.
(rif): Removed.
src/dispnew.c (rif): Removed.
(direct_output_for_insert, direct_output_forward_char, update_frame)
(redraw_overlapped_rows, redraw_overlapping_rows, update_window)
(update_marginal_area, update_text_area, update_window_line)
(set_window_cursor_after_update, scrolling_window): Use the rif of the
current frame, not the global rif.
src/fontset.c: #include termhooks.h, for FRAME_RIF.
(Finternal_char_font): Use the rif of the current frame.
src/frame.c (x_set_frame_parameters): Use the rif of the current frame.
src/keyboard.c (detect_input_pending_run_timers): Use the rif of the
current frame.
src/minibuf.c: #include termhooks.h, for FRAME_RIF.
(read_minibuf): Use the rif of the current frame.
src/term.c (update_begin): Removed rif update hack.
src/termhooks.h (FRAME_RIF): New macro.
src/xdisp.c (init_iterator, expose_frame): Removed rif update hack.
(echo_area_display, x_cursor_to, draw_fringe_bitmap)
(try_window_reusing_current_matrix, try_window_id)
(get_glyph_face_and_encoding, x_get_glyph_overhangs)
(get_char_face_and_encoding, compute_overhangs_and_x, draw_glyphs)
(x_produce_glyphs, x_insert_glyphs, x_clear_end_of_line)
(erase_phys_cursor, display_and_set_cursor, show_mouse_face)
(define_frame_cursor1, x_draw_vertical_border): Use the rif of the
current frame.
src/xfns.c (Fx_create_frame): Removed rif update hack.
src/xterm.c (frame_highlight, frame_unhighlight): Ditto.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-32
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.in | 4 | ||||
| -rw-r--r-- | src/dispextern.h | 24 | ||||
| -rw-r--r-- | src/dispnew.c | 49 | ||||
| -rw-r--r-- | src/fontset.c | 3 | ||||
| -rw-r--r-- | src/frame.c | 8 | ||||
| -rw-r--r-- | src/keyboard.c | 8 | ||||
| -rw-r--r-- | src/minibuf.c | 9 | ||||
| -rw-r--r-- | src/term.c | 2 | ||||
| -rw-r--r-- | src/termhooks.h | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 106 | ||||
| -rw-r--r-- | src/xfns.c | 3 | ||||
| -rw-r--r-- | src/xterm.c | 6 |
12 files changed, 110 insertions, 114 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index 8a19441c53a..1f0e18d9e55 100644 --- a/src/Makefile.in +++ b/src/Makefile.in | |||
| @@ -1076,7 +1076,7 @@ frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \ | |||
| 1076 | blockinput.h systty.h atimer.h systime.h buffer.h charset.h fontset.h \ | 1076 | blockinput.h systty.h atimer.h systime.h buffer.h charset.h fontset.h \ |
| 1077 | msdos.h dosfns.h dispextern.h $(config_h) | 1077 | msdos.h dosfns.h dispextern.h $(config_h) |
| 1078 | fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \ | 1078 | fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \ |
| 1079 | keyboard.h $(config_h) | 1079 | keyboard.h termhooks.h $(config_h) |
| 1080 | getloadavg.o: getloadavg.c $(config_h) | 1080 | getloadavg.o: getloadavg.c $(config_h) |
| 1081 | indent.o: indent.c frame.h window.h systty.h indent.h buffer.h $(config_h) termchar.h \ | 1081 | indent.o: indent.c frame.h window.h systty.h indent.h buffer.h $(config_h) termchar.h \ |
| 1082 | termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h \ | 1082 | termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h \ |
| @@ -1099,7 +1099,7 @@ vm-limit.o: vm-limit.c mem-limits.h $(config_h) | |||
| 1099 | marker.o: marker.c buffer.h charset.h $(config_h) | 1099 | marker.o: marker.c buffer.h charset.h $(config_h) |
| 1100 | md5.o: md5.c md5.h $(config_h) | 1100 | md5.o: md5.c md5.h $(config_h) |
| 1101 | minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \ | 1101 | minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \ |
| 1102 | buffer.h commands.h charset.h msdos.h $(config_h) | 1102 | buffer.h commands.h charset.h msdos.h termhooks.h $(config_h) |
| 1103 | mktime.o: mktime.c $(config_h) | 1103 | mktime.o: mktime.c $(config_h) |
| 1104 | msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \ | 1104 | msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \ |
| 1105 | termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \ | 1105 | termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \ |
diff --git a/src/dispextern.h b/src/dispextern.h index 4b47aaf7188..52ea29b8d69 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -2011,16 +2011,16 @@ struct it | |||
| 2011 | /* Call produce_glyphs or produce_glyphs_hook, if set. Shortcut to | 2011 | /* Call produce_glyphs or produce_glyphs_hook, if set. Shortcut to |
| 2012 | avoid the function call overhead. */ | 2012 | avoid the function call overhead. */ |
| 2013 | 2013 | ||
| 2014 | #define PRODUCE_GLYPHS(IT) \ | 2014 | #define PRODUCE_GLYPHS(IT) \ |
| 2015 | do { \ | 2015 | do { \ |
| 2016 | extern int inhibit_free_realized_faces; \ | 2016 | extern int inhibit_free_realized_faces; \ |
| 2017 | if (rif != NULL) \ | 2017 | if (FRAME_RIF ((IT)->f) != NULL) \ |
| 2018 | rif->produce_glyphs ((IT)); \ | 2018 | FRAME_RIF ((IT)->f)->produce_glyphs ((IT)); \ |
| 2019 | else \ | 2019 | else \ |
| 2020 | produce_glyphs ((IT)); \ | 2020 | produce_glyphs ((IT)); \ |
| 2021 | if ((IT)->glyph_row != NULL) \ | 2021 | if ((IT)->glyph_row != NULL) \ |
| 2022 | inhibit_free_realized_faces = 1; \ | 2022 | inhibit_free_realized_faces = 1; \ |
| 2023 | } while (0) | 2023 | } while (0) |
| 2024 | 2024 | ||
| 2025 | /* Bit-flags indicating what operation move_it_to should perform. */ | 2025 | /* Bit-flags indicating what operation move_it_to should perform. */ |
| 2026 | 2026 | ||
| @@ -2189,10 +2189,6 @@ struct redisplay_interface | |||
| 2189 | #endif /* HAVE_WINDOW_SYSTEM */ | 2189 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 2190 | }; | 2190 | }; |
| 2191 | 2191 | ||
| 2192 | /* The current interface for window-based redisplay. */ | ||
| 2193 | |||
| 2194 | extern struct redisplay_interface *rif; | ||
| 2195 | |||
| 2196 | 2192 | ||
| 2197 | /*********************************************************************** | 2193 | /*********************************************************************** |
| 2198 | Images | 2194 | Images |
diff --git a/src/dispnew.c b/src/dispnew.c index 9ccc87a6020..87ac292a1b0 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -297,13 +297,6 @@ int glyph_pool_count; | |||
| 297 | 297 | ||
| 298 | static struct frame *frame_matrix_frame; | 298 | static struct frame *frame_matrix_frame; |
| 299 | 299 | ||
| 300 | /* Current interface for window-based redisplay. Set from | ||
| 301 | update_begin. A null value means we are not using window-based | ||
| 302 | redisplay. */ | ||
| 303 | /* XXX this variable causes frequent coredumps */ | ||
| 304 | |||
| 305 | struct redisplay_interface *rif; | ||
| 306 | |||
| 307 | /* Non-zero means that fonts have been loaded since the last glyph | 300 | /* Non-zero means that fonts have been loaded since the last glyph |
| 308 | matrix adjustments. Redisplay must stop, and glyph matrices must | 301 | matrix adjustments. Redisplay must stop, and glyph matrices must |
| 309 | be adjusted when this flag becomes non-zero during display. The | 302 | be adjusted when this flag becomes non-zero during display. The |
| @@ -3610,17 +3603,17 @@ direct_output_for_insert (g) | |||
| 3610 | updated_row = glyph_row; | 3603 | updated_row = glyph_row; |
| 3611 | updated_area = TEXT_AREA; | 3604 | updated_area = TEXT_AREA; |
| 3612 | update_begin (f); | 3605 | update_begin (f); |
| 3613 | if (rif) | 3606 | if (FRAME_RIF (f)) |
| 3614 | { | 3607 | { |
| 3615 | rif->update_window_begin_hook (w); | 3608 | FRAME_RIF (f)->update_window_begin_hook (w); |
| 3616 | 3609 | ||
| 3617 | if (glyphs == end - n | 3610 | if (glyphs == end - n |
| 3618 | /* In front of a space added by append_space. */ | 3611 | /* In front of a space added by append_space. */ |
| 3619 | || (glyphs == end - n - 1 | 3612 | || (glyphs == end - n - 1 |
| 3620 | && (end - n)->charpos <= 0)) | 3613 | && (end - n)->charpos <= 0)) |
| 3621 | rif->write_glyphs (glyphs, n); | 3614 | FRAME_RIF (f)->write_glyphs (glyphs, n); |
| 3622 | else | 3615 | else |
| 3623 | rif->insert_glyphs (glyphs, n); | 3616 | FRAME_RIF (f)->insert_glyphs (glyphs, n); |
| 3624 | } | 3617 | } |
| 3625 | else | 3618 | else |
| 3626 | { | 3619 | { |
| @@ -3640,8 +3633,8 @@ direct_output_for_insert (g) | |||
| 3640 | a frame matrix is used, cursor_to expects frame coordinates, | 3633 | a frame matrix is used, cursor_to expects frame coordinates, |
| 3641 | and the X and Y parameters are not used. */ | 3634 | and the X and Y parameters are not used. */ |
| 3642 | if (window_redisplay_p) | 3635 | if (window_redisplay_p) |
| 3643 | rif->cursor_to (w->cursor.vpos, w->cursor.hpos, | 3636 | FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos, |
| 3644 | w->cursor.y, w->cursor.x); | 3637 | w->cursor.y, w->cursor.x); |
| 3645 | else | 3638 | else |
| 3646 | { | 3639 | { |
| 3647 | int x, y; | 3640 | int x, y; |
| @@ -3653,8 +3646,8 @@ direct_output_for_insert (g) | |||
| 3653 | cursor_to (y, x); | 3646 | cursor_to (y, x); |
| 3654 | } | 3647 | } |
| 3655 | 3648 | ||
| 3656 | if (rif) | 3649 | if (FRAME_RIF (f)) |
| 3657 | rif->update_window_end_hook (w, 1, 0); | 3650 | FRAME_RIF (f)->update_window_end_hook (w, 1, 0); |
| 3658 | update_end (f); | 3651 | update_end (f); |
| 3659 | updated_row = NULL; | 3652 | updated_row = NULL; |
| 3660 | if (FRAME_TERMCAP_P (f)) | 3653 | if (FRAME_TERMCAP_P (f)) |
| @@ -3736,8 +3729,8 @@ direct_output_forward_char (n) | |||
| 3736 | && w->cursor.hpos < w->desired_matrix->matrix_w); | 3729 | && w->cursor.hpos < w->desired_matrix->matrix_w); |
| 3737 | 3730 | ||
| 3738 | if (FRAME_WINDOW_P (f)) | 3731 | if (FRAME_WINDOW_P (f)) |
| 3739 | rif->cursor_to (w->cursor.vpos, w->cursor.hpos, | 3732 | FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos, |
| 3740 | w->cursor.y, w->cursor.x); | 3733 | w->cursor.y, w->cursor.x); |
| 3741 | else | 3734 | else |
| 3742 | { | 3735 | { |
| 3743 | int x, y; | 3736 | int x, y; |
| @@ -3824,7 +3817,7 @@ update_frame (f, force_p, inhibit_hairy_id_p) | |||
| 3824 | 3817 | ||
| 3825 | #if 0 /* This flush is a performance bottleneck under X, | 3818 | #if 0 /* This flush is a performance bottleneck under X, |
| 3826 | and it doesn't seem to be necessary anyway. */ | 3819 | and it doesn't seem to be necessary anyway. */ |
| 3827 | rif->flush_display (f); | 3820 | FRAME_RIF (f)->flush_display (f); |
| 3828 | #endif | 3821 | #endif |
| 3829 | } | 3822 | } |
| 3830 | else | 3823 | else |
| @@ -3926,7 +3919,8 @@ redraw_overlapped_rows (w, yb) | |||
| 3926 | int yb; | 3919 | int yb; |
| 3927 | { | 3920 | { |
| 3928 | int i; | 3921 | int i; |
| 3929 | 3922 | struct frame *f = XFRAME (WINDOW_FRAME (w)); | |
| 3923 | |||
| 3930 | /* If rows overlapping others have been changed, the rows being | 3924 | /* If rows overlapping others have been changed, the rows being |
| 3931 | overlapped have to be redrawn. This won't draw lines that have | 3925 | overlapped have to be redrawn. This won't draw lines that have |
| 3932 | already been drawn in update_window_line because overlapped_p in | 3926 | already been drawn in update_window_line because overlapped_p in |
| @@ -3949,10 +3943,12 @@ redraw_overlapped_rows (w, yb) | |||
| 3949 | { | 3943 | { |
| 3950 | updated_row = row; | 3944 | updated_row = row; |
| 3951 | updated_area = area; | 3945 | updated_area = area; |
| 3952 | rif->cursor_to (i, 0, row->y, area == TEXT_AREA ? row->x : 0); | 3946 | FRAME_RIF (f)->cursor_to (i, 0, row->y, |
| 3947 | area == TEXT_AREA ? row->x : 0); | ||
| 3953 | if (row->used[area]) | 3948 | if (row->used[area]) |
| 3954 | rif->write_glyphs (row->glyphs[area], row->used[area]); | 3949 | FRAME_RIF (f)->write_glyphs (row->glyphs[area], |
| 3955 | rif->clear_end_of_line (-1); | 3950 | row->used[area]); |
| 3951 | FRAME_RIF (f)->clear_end_of_line (-1); | ||
| 3956 | } | 3952 | } |
| 3957 | 3953 | ||
| 3958 | row->overlapped_p = 0; | 3954 | row->overlapped_p = 0; |
| @@ -3974,7 +3970,8 @@ redraw_overlapping_rows (w, yb) | |||
| 3974 | { | 3970 | { |
| 3975 | int i, bottom_y; | 3971 | int i, bottom_y; |
| 3976 | struct glyph_row *row; | 3972 | struct glyph_row *row; |
| 3977 | 3973 | struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w))); | |
| 3974 | |||
| 3978 | for (i = 0; i < w->current_matrix->nrows; ++i) | 3975 | for (i = 0; i < w->current_matrix->nrows; ++i) |
| 3979 | { | 3976 | { |
| 3980 | row = w->current_matrix->rows + i; | 3977 | row = w->current_matrix->rows + i; |
| @@ -4054,6 +4051,7 @@ update_window (w, force_p) | |||
| 4054 | #if GLYPH_DEBUG | 4051 | #if GLYPH_DEBUG |
| 4055 | struct frame *f = XFRAME (WINDOW_FRAME (w)); | 4052 | struct frame *f = XFRAME (WINDOW_FRAME (w)); |
| 4056 | #endif | 4053 | #endif |
| 4054 | struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w))); | ||
| 4057 | 4055 | ||
| 4058 | /* Check that W's frame doesn't have glyph matrices. */ | 4056 | /* Check that W's frame doesn't have glyph matrices. */ |
| 4059 | xassert (FRAME_WINDOW_P (f)); | 4057 | xassert (FRAME_WINDOW_P (f)); |
| @@ -4221,6 +4219,7 @@ update_marginal_area (w, area, vpos) | |||
| 4221 | int area, vpos; | 4219 | int area, vpos; |
| 4222 | { | 4220 | { |
| 4223 | struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos); | 4221 | struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos); |
| 4222 | struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w))); | ||
| 4224 | 4223 | ||
| 4225 | /* Let functions in xterm.c know what area subsequent X positions | 4224 | /* Let functions in xterm.c know what area subsequent X positions |
| 4226 | will be relative to. */ | 4225 | will be relative to. */ |
| @@ -4246,6 +4245,7 @@ update_text_area (w, vpos) | |||
| 4246 | { | 4245 | { |
| 4247 | struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos); | 4246 | struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos); |
| 4248 | struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos); | 4247 | struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos); |
| 4248 | struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w))); | ||
| 4249 | int changed_p = 0; | 4249 | int changed_p = 0; |
| 4250 | 4250 | ||
| 4251 | /* Let functions in xterm.c know what area subsequent X positions | 4251 | /* Let functions in xterm.c know what area subsequent X positions |
| @@ -4467,6 +4467,7 @@ update_window_line (w, vpos, mouse_face_overwritten_p) | |||
| 4467 | { | 4467 | { |
| 4468 | struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos); | 4468 | struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos); |
| 4469 | struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos); | 4469 | struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos); |
| 4470 | struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w))); | ||
| 4470 | int changed_p = 0; | 4471 | int changed_p = 0; |
| 4471 | 4472 | ||
| 4472 | /* Set the row being updated. This is important to let xterm.c | 4473 | /* Set the row being updated. This is important to let xterm.c |
| @@ -4537,6 +4538,7 @@ set_window_cursor_after_update (w) | |||
| 4537 | struct window *w; | 4538 | struct window *w; |
| 4538 | { | 4539 | { |
| 4539 | struct frame *f = XFRAME (w->frame); | 4540 | struct frame *f = XFRAME (w->frame); |
| 4541 | struct redisplay_interface *rif = FRAME_RIF (f); | ||
| 4540 | int cx, cy, vpos, hpos; | 4542 | int cx, cy, vpos, hpos; |
| 4541 | 4543 | ||
| 4542 | /* Not intended for frame matrix updates. */ | 4544 | /* Not intended for frame matrix updates. */ |
| @@ -4760,6 +4762,7 @@ scrolling_window (w, header_line_p) | |||
| 4760 | int i, j, first_old, first_new, last_old, last_new; | 4762 | int i, j, first_old, first_new, last_old, last_new; |
| 4761 | int nruns, nbytes, n, run_idx; | 4763 | int nruns, nbytes, n, run_idx; |
| 4762 | struct row_entry *entry; | 4764 | struct row_entry *entry; |
| 4765 | struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w))); | ||
| 4763 | 4766 | ||
| 4764 | /* Skip over rows equal at the start. */ | 4767 | /* Skip over rows equal at the start. */ |
| 4765 | for (i = header_line_p ? 1 : 0; i < current_matrix->nrows - 1; ++i) | 4768 | for (i = header_line_p ? 1 : 0; i < current_matrix->nrows - 1; ++i) |
diff --git a/src/fontset.c b/src/fontset.c index b199f53df17..7ff1ed1177f 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -45,6 +45,7 @@ Boston, MA 02111-1307, USA. */ | |||
| 45 | #ifdef MAC_OS | 45 | #ifdef MAC_OS |
| 46 | #include "macterm.h" | 46 | #include "macterm.h" |
| 47 | #endif | 47 | #endif |
| 48 | #include "termhooks.h" | ||
| 48 | 49 | ||
| 49 | #ifdef FONTSET_DEBUG | 50 | #ifdef FONTSET_DEBUG |
| 50 | #undef xassert | 51 | #undef xassert |
| @@ -1279,7 +1280,7 @@ DEFUN ("internal-char-font", Finternal_char_font, Sinternal_char_font, 1, 2, 0, | |||
| 1279 | STORE_XCHAR2B (&char2b, c1, c2); | 1280 | STORE_XCHAR2B (&char2b, c1, c2); |
| 1280 | else | 1281 | else |
| 1281 | STORE_XCHAR2B (&char2b, 0, c1); | 1282 | STORE_XCHAR2B (&char2b, 0, c1); |
| 1282 | rif->encode_char (c, &char2b, fontp, NULL); | 1283 | FRAME_RIF (f)->encode_char (c, &char2b, fontp, NULL); |
| 1283 | code = (XCHAR2B_BYTE1 (&char2b) << 8) | XCHAR2B_BYTE2 (&char2b); | 1284 | code = (XCHAR2B_BYTE1 (&char2b) << 8) | XCHAR2B_BYTE2 (&char2b); |
| 1284 | } | 1285 | } |
| 1285 | return Fcons (build_string (face->font_name), make_number (code)); | 1286 | return Fcons (build_string (face->font_name), make_number (code)); |
diff --git a/src/frame.c b/src/frame.c index d1c0a220afb..3b8ce346cad 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -2807,8 +2807,8 @@ x_set_frame_parameters (f, alist) | |||
| 2807 | if (NATNUMP (param_index) | 2807 | if (NATNUMP (param_index) |
| 2808 | && (XFASTINT (param_index) | 2808 | && (XFASTINT (param_index) |
| 2809 | < sizeof (frame_parms)/sizeof (frame_parms[0])) | 2809 | < sizeof (frame_parms)/sizeof (frame_parms[0])) |
| 2810 | && rif->frame_parm_handlers[XINT (param_index)]) | 2810 | && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)]) |
| 2811 | (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); | 2811 | (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); |
| 2812 | } | 2812 | } |
| 2813 | } | 2813 | } |
| 2814 | } | 2814 | } |
| @@ -2851,8 +2851,8 @@ x_set_frame_parameters (f, alist) | |||
| 2851 | if (NATNUMP (param_index) | 2851 | if (NATNUMP (param_index) |
| 2852 | && (XFASTINT (param_index) | 2852 | && (XFASTINT (param_index) |
| 2853 | < sizeof (frame_parms)/sizeof (frame_parms[0])) | 2853 | < sizeof (frame_parms)/sizeof (frame_parms[0])) |
| 2854 | && rif->frame_parm_handlers[XINT (param_index)]) | 2854 | && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)]) |
| 2855 | (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); | 2855 | (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); |
| 2856 | } | 2856 | } |
| 2857 | } | 2857 | } |
| 2858 | 2858 | ||
diff --git a/src/keyboard.c b/src/keyboard.c index d849b9ce4d6..df5c65c3341 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -9874,8 +9874,12 @@ detect_input_pending_run_timers (do_display) | |||
| 9874 | from an idle timer function. The symptom of the bug is that | 9874 | from an idle timer function. The symptom of the bug is that |
| 9875 | the cursor sometimes doesn't become visible until the next X | 9875 | the cursor sometimes doesn't become visible until the next X |
| 9876 | event is processed. --gerd. */ | 9876 | event is processed. --gerd. */ |
| 9877 | if (rif) | 9877 | { |
| 9878 | rif->flush_display (NULL); | 9878 | Lisp_Object tail, frame; |
| 9879 | FOR_EACH_FRAME (tail, frame) | ||
| 9880 | if (FRAME_RIF (XFRAME (frame))) | ||
| 9881 | FRAME_RIF (XFRAME (frame))->flush_display (XFRAME (frame)); | ||
| 9882 | } | ||
| 9879 | } | 9883 | } |
| 9880 | 9884 | ||
| 9881 | return input_pending; | 9885 | return input_pending; |
diff --git a/src/minibuf.c b/src/minibuf.c index 9a05a4d1ce0..6124054f3c0 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -34,6 +34,7 @@ Boston, MA 02111-1307, USA. */ | |||
| 34 | #include "syntax.h" | 34 | #include "syntax.h" |
| 35 | #include "intervals.h" | 35 | #include "intervals.h" |
| 36 | #include "keymap.h" | 36 | #include "keymap.h" |
| 37 | #include "termhooks.h" | ||
| 37 | 38 | ||
| 38 | extern int quit_char; | 39 | extern int quit_char; |
| 39 | 40 | ||
| @@ -692,8 +693,12 @@ read_minibuf (map, initial, prompt, backup_n, expflag, | |||
| 692 | XWINDOW (minibuf_window)->cursor.x = 0; | 693 | XWINDOW (minibuf_window)->cursor.x = 0; |
| 693 | XWINDOW (minibuf_window)->must_be_updated_p = 1; | 694 | XWINDOW (minibuf_window)->must_be_updated_p = 1; |
| 694 | update_frame (XFRAME (selected_frame), 1, 1); | 695 | update_frame (XFRAME (selected_frame), 1, 1); |
| 695 | if (rif && rif->flush_display) | 696 | { |
| 696 | rif->flush_display (XFRAME (XWINDOW (minibuf_window)->frame)); | 697 | struct frame *f = XFRAME (XWINDOW (minibuf_window)->frame); |
| 698 | struct redisplay_interface *rif = FRAME_RIF (f); | ||
| 699 | if (rif && rif->flush_display) | ||
| 700 | rif->flush_display (f); | ||
| 701 | } | ||
| 697 | } | 702 | } |
| 698 | 703 | ||
| 699 | /* Make minibuffer contents into a string. */ | 704 | /* Make minibuffer contents into a string. */ |
diff --git a/src/term.c b/src/term.c index b35a20a2ff0..24dbc614c6f 100644 --- a/src/term.c +++ b/src/term.c | |||
| @@ -374,8 +374,6 @@ update_begin (f) | |||
| 374 | struct frame *f; | 374 | struct frame *f; |
| 375 | { | 375 | { |
| 376 | updating_frame = f; | 376 | updating_frame = f; |
| 377 | /* XXX rif hack */ | ||
| 378 | rif = f->display_method->rif; | ||
| 379 | if (!FRAME_TERMCAP_P (f)) | 377 | if (!FRAME_TERMCAP_P (f)) |
| 380 | update_begin_hook (f); | 378 | update_begin_hook (f); |
| 381 | } | 379 | } |
diff --git a/src/termhooks.h b/src/termhooks.h index 0d7818ab818..35a8763425a 100644 --- a/src/termhooks.h +++ b/src/termhooks.h | |||
| @@ -71,6 +71,8 @@ struct display_method | |||
| 71 | #define FRAME_SCROLL_REGION_COST(f) ((f)->display_method->scroll_region_cost) | 71 | #define FRAME_SCROLL_REGION_COST(f) ((f)->display_method->scroll_region_cost) |
| 72 | #define FRAME_MEMORY_BELOW_FRAME(f) ((f)->display_method->memory_below_frame) | 72 | #define FRAME_MEMORY_BELOW_FRAME(f) ((f)->display_method->memory_below_frame) |
| 73 | 73 | ||
| 74 | #define FRAME_RIF(f) ((f)->display_method->rif) | ||
| 75 | |||
| 74 | /* Text display hooks. */ | 76 | /* Text display hooks. */ |
| 75 | 77 | ||
| 76 | extern void (*cursor_to_hook) P_ ((int vpos, int hpos)); | 78 | extern void (*cursor_to_hook) P_ ((int vpos, int hpos)); |
diff --git a/src/xdisp.c b/src/xdisp.c index e2decba9066..dcddeeb9037 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -2009,9 +2009,6 @@ init_iterator (it, w, charpos, bytepos, row, base_face_id) | |||
| 2009 | it->w = w; | 2009 | it->w = w; |
| 2010 | it->f = XFRAME (w->frame); | 2010 | it->f = XFRAME (w->frame); |
| 2011 | 2011 | ||
| 2012 | /* XXX rif hack: Make sure the redisplay interface is correctly set. */ | ||
| 2013 | rif = it->f->display_method->rif; | ||
| 2014 | |||
| 2015 | /* Extra space between lines (on window systems only). */ | 2012 | /* Extra space between lines (on window systems only). */ |
| 2016 | if (base_face_id == DEFAULT_FACE_ID | 2013 | if (base_face_id == DEFAULT_FACE_ID |
| 2017 | && FRAME_WINDOW_P (it->f)) | 2014 | && FRAME_WINDOW_P (it->f)) |
| @@ -7674,7 +7671,7 @@ echo_area_display (update_frame_p) | |||
| 7674 | Can do with a display update of the echo area, | 7671 | Can do with a display update of the echo area, |
| 7675 | unless we displayed some mode lines. */ | 7672 | unless we displayed some mode lines. */ |
| 7676 | update_single_window (w, 1); | 7673 | update_single_window (w, 1); |
| 7677 | rif->flush_display (f); | 7674 | FRAME_RIF (f)->flush_display (f); |
| 7678 | } | 7675 | } |
| 7679 | else | 7676 | else |
| 7680 | update_frame (f, 1, 1); | 7677 | update_frame (f, 1, 1); |
| @@ -8135,8 +8132,8 @@ x_cursor_to (vpos, hpos, y, x) | |||
| 8135 | { | 8132 | { |
| 8136 | BLOCK_INPUT; | 8133 | BLOCK_INPUT; |
| 8137 | display_and_set_cursor (w, 1, hpos, vpos, x, y); | 8134 | display_and_set_cursor (w, 1, hpos, vpos, x, y); |
| 8138 | if (rif->flush_display_optional) | 8135 | if (FRAME_RIF (SELECTED_FRAME ())->flush_display_optional) |
| 8139 | rif->flush_display_optional (SELECTED_FRAME ()); | 8136 | FRAME_RIF (SELECTED_FRAME ())->flush_display_optional (SELECTED_FRAME ()); |
| 8140 | UNBLOCK_INPUT; | 8137 | UNBLOCK_INPUT; |
| 8141 | } | 8138 | } |
| 8142 | } | 8139 | } |
| @@ -9029,7 +9026,7 @@ draw_fringe_bitmap (w, row, which, left_p) | |||
| 9029 | /* Adjust y to the offset in the row to start drawing the bitmap. */ | 9026 | /* Adjust y to the offset in the row to start drawing the bitmap. */ |
| 9030 | p.y += (row->height - p.h) / 2; | 9027 | p.y += (row->height - p.h) / 2; |
| 9031 | 9028 | ||
| 9032 | rif->draw_fringe_bitmap (w, row, &p); | 9029 | FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p); |
| 9033 | } | 9030 | } |
| 9034 | 9031 | ||
| 9035 | /* Draw fringe bitmaps for glyph row ROW on window W. Call this | 9032 | /* Draw fringe bitmaps for glyph row ROW on window W. Call this |
| @@ -12303,10 +12300,10 @@ try_window_reusing_current_matrix (w) | |||
| 12303 | if (run.height > 0 && run.current_y != run.desired_y) | 12300 | if (run.height > 0 && run.current_y != run.desired_y) |
| 12304 | { | 12301 | { |
| 12305 | update_begin (f); | 12302 | update_begin (f); |
| 12306 | rif->update_window_begin_hook (w); | 12303 | FRAME_RIF (f)->update_window_begin_hook (w); |
| 12307 | rif->clear_window_mouse_face (w); | 12304 | FRAME_RIF (f)->clear_window_mouse_face (w); |
| 12308 | rif->scroll_run_hook (w, &run); | 12305 | FRAME_RIF (f)->scroll_run_hook (w, &run); |
| 12309 | rif->update_window_end_hook (w, 0, 0); | 12306 | FRAME_RIF (f)->update_window_end_hook (w, 0, 0); |
| 12310 | update_end (f); | 12307 | update_end (f); |
| 12311 | } | 12308 | } |
| 12312 | 12309 | ||
| @@ -12476,10 +12473,10 @@ try_window_reusing_current_matrix (w) | |||
| 12476 | { | 12473 | { |
| 12477 | struct frame *f = XFRAME (WINDOW_FRAME (w)); | 12474 | struct frame *f = XFRAME (WINDOW_FRAME (w)); |
| 12478 | update_begin (f); | 12475 | update_begin (f); |
| 12479 | rif->update_window_begin_hook (w); | 12476 | FRAME_RIF (f)->update_window_begin_hook (w); |
| 12480 | rif->clear_window_mouse_face (w); | 12477 | FRAME_RIF (f)->clear_window_mouse_face (w); |
| 12481 | rif->scroll_run_hook (w, &run); | 12478 | FRAME_RIF (f)->scroll_run_hook (w, &run); |
| 12482 | rif->update_window_end_hook (w, 0, 0); | 12479 | FRAME_RIF (f)->update_window_end_hook (w, 0, 0); |
| 12483 | update_end (f); | 12480 | update_end (f); |
| 12484 | } | 12481 | } |
| 12485 | 12482 | ||
| @@ -13310,10 +13307,10 @@ try_window_id (w) | |||
| 13310 | 13307 | ||
| 13311 | if (FRAME_WINDOW_P (f)) | 13308 | if (FRAME_WINDOW_P (f)) |
| 13312 | { | 13309 | { |
| 13313 | rif->update_window_begin_hook (w); | 13310 | FRAME_RIF (f)->update_window_begin_hook (w); |
| 13314 | rif->clear_window_mouse_face (w); | 13311 | FRAME_RIF (f)->clear_window_mouse_face (w); |
| 13315 | rif->scroll_run_hook (w, &run); | 13312 | FRAME_RIF (f)->scroll_run_hook (w, &run); |
| 13316 | rif->update_window_end_hook (w, 0, 0); | 13313 | FRAME_RIF (f)->update_window_end_hook (w, 0, 0); |
| 13317 | } | 13314 | } |
| 13318 | else | 13315 | else |
| 13319 | { | 13316 | { |
| @@ -16818,7 +16815,7 @@ get_glyph_face_and_encoding (f, glyph, char2b, two_byte_p) | |||
| 16818 | = FONT_INFO_FROM_ID (f, face->font_info_id); | 16815 | = FONT_INFO_FROM_ID (f, face->font_info_id); |
| 16819 | if (font_info) | 16816 | if (font_info) |
| 16820 | glyph->font_type | 16817 | glyph->font_type |
| 16821 | = rif->encode_char (glyph->u.ch, char2b, font_info, two_byte_p); | 16818 | = FRAME_RIF (f)->encode_char (glyph->u.ch, char2b, font_info, two_byte_p); |
| 16822 | } | 16819 | } |
| 16823 | } | 16820 | } |
| 16824 | 16821 | ||
| @@ -17048,7 +17045,7 @@ x_get_glyph_overhangs (glyph, f, left, right) | |||
| 17048 | font = face->font; | 17045 | font = face->font; |
| 17049 | font_info = FONT_INFO_FROM_ID (f, face->font_info_id); | 17046 | font_info = FONT_INFO_FROM_ID (f, face->font_info_id); |
| 17050 | if (font /* ++KFS: Should this be font_info ? */ | 17047 | if (font /* ++KFS: Should this be font_info ? */ |
| 17051 | && (pcm = rif->per_char_metric (font, &char2b, glyph->font_type))) | 17048 | && (pcm = FRAME_RIF (f)->per_char_metric (font, &char2b, glyph->font_type))) |
| 17052 | { | 17049 | { |
| 17053 | if (pcm->rbearing > pcm->width) | 17050 | if (pcm->rbearing > pcm->width) |
| 17054 | *right = pcm->rbearing - pcm->width; | 17051 | *right = pcm->rbearing - pcm->width; |
| @@ -17216,7 +17213,7 @@ get_char_face_and_encoding (f, c, face_id, char2b, multibyte_p, display_p) | |||
| 17216 | struct font_info *font_info | 17213 | struct font_info *font_info |
| 17217 | = FONT_INFO_FROM_ID (f, face->font_info_id); | 17214 | = FONT_INFO_FROM_ID (f, face->font_info_id); |
| 17218 | if (font_info) | 17215 | if (font_info) |
| 17219 | rif->encode_char (c, char2b, font_info, 0); | 17216 | FRAME_RIF (f)->encode_char (c, char2b, font_info, 0); |
| 17220 | } | 17217 | } |
| 17221 | } | 17218 | } |
| 17222 | 17219 | ||
| @@ -17283,8 +17280,8 @@ compute_overhangs_and_x (s, x, backward_p) | |||
| 17283 | { | 17280 | { |
| 17284 | while (s) | 17281 | while (s) |
| 17285 | { | 17282 | { |
| 17286 | if (rif->compute_glyph_string_overhangs) | 17283 | if (FRAME_RIF (s->f)->compute_glyph_string_overhangs) |
| 17287 | rif->compute_glyph_string_overhangs (s); | 17284 | FRAME_RIF (s->f)->compute_glyph_string_overhangs (s); |
| 17288 | x -= s->width; | 17285 | x -= s->width; |
| 17289 | s->x = x; | 17286 | s->x = x; |
| 17290 | s = s->prev; | 17287 | s = s->prev; |
| @@ -17294,8 +17291,8 @@ compute_overhangs_and_x (s, x, backward_p) | |||
| 17294 | { | 17291 | { |
| 17295 | while (s) | 17292 | while (s) |
| 17296 | { | 17293 | { |
| 17297 | if (rif->compute_glyph_string_overhangs) | 17294 | if (FRAME_RIF (s->f)->compute_glyph_string_overhangs) |
| 17298 | rif->compute_glyph_string_overhangs (s); | 17295 | FRAME_RIF (s->f)->compute_glyph_string_overhangs (s); |
| 17299 | s->x = x; | 17296 | s->x = x; |
| 17300 | x += s->width; | 17297 | x += s->width; |
| 17301 | s = s->next; | 17298 | s = s->next; |
| @@ -17576,9 +17573,9 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps_p) | |||
| 17576 | struct glyph_string *h, *t; | 17573 | struct glyph_string *h, *t; |
| 17577 | 17574 | ||
| 17578 | /* Compute overhangs for all glyph strings. */ | 17575 | /* Compute overhangs for all glyph strings. */ |
| 17579 | if (rif->compute_glyph_string_overhangs) | 17576 | if (FRAME_RIF (f)->compute_glyph_string_overhangs) |
| 17580 | for (s = head; s; s = s->next) | 17577 | for (s = head; s; s = s->next) |
| 17581 | rif->compute_glyph_string_overhangs (s); | 17578 | FRAME_RIF (f)->compute_glyph_string_overhangs (s); |
| 17582 | 17579 | ||
| 17583 | /* Prepend glyph strings for glyphs in front of the first glyph | 17580 | /* Prepend glyph strings for glyphs in front of the first glyph |
| 17584 | string that are overwritten because of the first glyph | 17581 | string that are overwritten because of the first glyph |
| @@ -17646,7 +17643,7 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps_p) | |||
| 17646 | 17643 | ||
| 17647 | /* Draw all strings. */ | 17644 | /* Draw all strings. */ |
| 17648 | for (s = head; s; s = s->next) | 17645 | for (s = head; s; s = s->next) |
| 17649 | rif->draw_glyph_string (s); | 17646 | FRAME_RIF (f)->draw_glyph_string (s); |
| 17650 | 17647 | ||
| 17651 | if (area == TEXT_AREA | 17648 | if (area == TEXT_AREA |
| 17652 | && !row->full_width_p | 17649 | && !row->full_width_p |
| @@ -18334,8 +18331,8 @@ x_produce_glyphs (it) | |||
| 18334 | 18331 | ||
| 18335 | it->nglyphs = 1; | 18332 | it->nglyphs = 1; |
| 18336 | 18333 | ||
| 18337 | pcm = rif->per_char_metric (font, &char2b, | 18334 | pcm = FRAME_RIF (it->f)->per_char_metric (font, &char2b, |
| 18338 | FONT_TYPE_FOR_UNIBYTE (font, it->char_to_display)); | 18335 | FONT_TYPE_FOR_UNIBYTE (font, it->char_to_display)); |
| 18339 | it->ascent = FONT_BASE (font) + boff; | 18336 | it->ascent = FONT_BASE (font) + boff; |
| 18340 | it->descent = FONT_DESCENT (font) - boff; | 18337 | it->descent = FONT_DESCENT (font) - boff; |
| 18341 | 18338 | ||
| @@ -18459,8 +18456,8 @@ x_produce_glyphs (it) | |||
| 18459 | from the charset width; this is what old redisplay code | 18456 | from the charset width; this is what old redisplay code |
| 18460 | did. */ | 18457 | did. */ |
| 18461 | 18458 | ||
| 18462 | pcm = rif->per_char_metric (font, &char2b, | 18459 | pcm = FRAME_RIF (it->f)->per_char_metric (font, &char2b, |
| 18463 | FONT_TYPE_FOR_MULTIBYTE (font, it->c)); | 18460 | FONT_TYPE_FOR_MULTIBYTE (font, it->c)); |
| 18464 | 18461 | ||
| 18465 | if (font_not_found_p || !pcm) | 18462 | if (font_not_found_p || !pcm) |
| 18466 | { | 18463 | { |
| @@ -18591,8 +18588,8 @@ x_produce_glyphs (it) | |||
| 18591 | 18588 | ||
| 18592 | /* Initialize the bounding box. */ | 18589 | /* Initialize the bounding box. */ |
| 18593 | if (font_info | 18590 | if (font_info |
| 18594 | && (pcm = rif->per_char_metric (font, &char2b, | 18591 | && (pcm = FRAME_RIF (it->f)->per_char_metric (font, &char2b, |
| 18595 | FONT_TYPE_FOR_MULTIBYTE (font, it->c)))) | 18592 | FONT_TYPE_FOR_MULTIBYTE (font, it->c)))) |
| 18596 | { | 18593 | { |
| 18597 | width = pcm->width; | 18594 | width = pcm->width; |
| 18598 | ascent = pcm->ascent; | 18595 | ascent = pcm->ascent; |
| @@ -18650,8 +18647,8 @@ x_produce_glyphs (it) | |||
| 18650 | } | 18647 | } |
| 18651 | 18648 | ||
| 18652 | if (font_info | 18649 | if (font_info |
| 18653 | && (pcm = rif->per_char_metric (font, &char2b, | 18650 | && (pcm = FRAME_RIF (it->f)->per_char_metric (font, &char2b, |
| 18654 | FONT_TYPE_FOR_MULTIBYTE (font, ch)))) | 18651 | FONT_TYPE_FOR_MULTIBYTE (font, ch)))) |
| 18655 | { | 18652 | { |
| 18656 | width = pcm->width; | 18653 | width = pcm->width; |
| 18657 | ascent = pcm->ascent; | 18654 | ascent = pcm->ascent; |
| @@ -18886,8 +18883,8 @@ x_insert_glyphs (start, len) | |||
| 18886 | frame_x = window_box_left (w, updated_area) + output_cursor.x; | 18883 | frame_x = window_box_left (w, updated_area) + output_cursor.x; |
| 18887 | frame_y = WINDOW_TO_FRAME_PIXEL_Y (w, output_cursor.y); | 18884 | frame_y = WINDOW_TO_FRAME_PIXEL_Y (w, output_cursor.y); |
| 18888 | 18885 | ||
| 18889 | rif->shift_glyphs_for_insert (f, frame_x, frame_y, shifted_region_width, | 18886 | FRAME_RIF (f)->shift_glyphs_for_insert (f, frame_x, frame_y, shifted_region_width, |
| 18890 | line_height, shift_by_width); | 18887 | line_height, shift_by_width); |
| 18891 | 18888 | ||
| 18892 | /* Write the glyphs. */ | 18889 | /* Write the glyphs. */ |
| 18893 | hpos = start - row->glyphs[updated_area]; | 18890 | hpos = start - row->glyphs[updated_area]; |
| @@ -18969,8 +18966,8 @@ x_clear_end_of_line (to_x) | |||
| 18969 | if (to_x > from_x && to_y > from_y) | 18966 | if (to_x > from_x && to_y > from_y) |
| 18970 | { | 18967 | { |
| 18971 | BLOCK_INPUT; | 18968 | BLOCK_INPUT; |
| 18972 | rif->clear_frame_area (f, from_x, from_y, | 18969 | FRAME_RIF (f)->clear_frame_area (f, from_x, from_y, |
| 18973 | to_x - from_x, to_y - from_y); | 18970 | to_x - from_x, to_y - from_y); |
| 18974 | UNBLOCK_INPUT; | 18971 | UNBLOCK_INPUT; |
| 18975 | } | 18972 | } |
| 18976 | } | 18973 | } |
| @@ -19407,8 +19404,8 @@ erase_phys_cursor (w) | |||
| 19407 | x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); | 19404 | x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); |
| 19408 | y = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, cursor_row->y)); | 19405 | y = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, cursor_row->y)); |
| 19409 | 19406 | ||
| 19410 | rif->clear_frame_area (f, x, y, | 19407 | FRAME_RIF (f)->clear_frame_area (f, x, y, |
| 19411 | cursor_glyph->pixel_width, cursor_row->visible_height); | 19408 | cursor_glyph->pixel_width, cursor_row->visible_height); |
| 19412 | } | 19409 | } |
| 19413 | 19410 | ||
| 19414 | /* Erase the cursor by redrawing the character underneath it. */ | 19411 | /* Erase the cursor by redrawing the character underneath it. */ |
| @@ -19504,9 +19501,9 @@ display_and_set_cursor (w, on, hpos, vpos, x, y) | |||
| 19504 | w->phys_cursor.vpos = vpos; | 19501 | w->phys_cursor.vpos = vpos; |
| 19505 | } | 19502 | } |
| 19506 | 19503 | ||
| 19507 | rif->draw_window_cursor (w, glyph_row, x, y, | 19504 | FRAME_RIF (f)->draw_window_cursor (w, glyph_row, x, y, |
| 19508 | new_cursor_type, new_cursor_width, | 19505 | new_cursor_type, new_cursor_width, |
| 19509 | on, active_cursor); | 19506 | on, active_cursor); |
| 19510 | } | 19507 | } |
| 19511 | 19508 | ||
| 19512 | 19509 | ||
| @@ -19651,11 +19648,11 @@ show_mouse_face (dpyinfo, draw) | |||
| 19651 | 19648 | ||
| 19652 | /* Change the mouse cursor. */ | 19649 | /* Change the mouse cursor. */ |
| 19653 | if (draw == DRAW_NORMAL_TEXT) | 19650 | if (draw == DRAW_NORMAL_TEXT) |
| 19654 | rif->define_frame_cursor (f, FRAME_X_OUTPUT (f)->text_cursor); | 19651 | FRAME_RIF (f)->define_frame_cursor (f, FRAME_X_OUTPUT (f)->text_cursor); |
| 19655 | else if (draw == DRAW_MOUSE_FACE) | 19652 | else if (draw == DRAW_MOUSE_FACE) |
| 19656 | rif->define_frame_cursor (f, FRAME_X_OUTPUT (f)->hand_cursor); | 19653 | FRAME_RIF (f)->define_frame_cursor (f, FRAME_X_OUTPUT (f)->hand_cursor); |
| 19657 | else | 19654 | else |
| 19658 | rif->define_frame_cursor (f, FRAME_X_OUTPUT (f)->nontext_cursor); | 19655 | FRAME_RIF (f)->define_frame_cursor (f, FRAME_X_OUTPUT (f)->nontext_cursor); |
| 19659 | } | 19656 | } |
| 19660 | 19657 | ||
| 19661 | /* EXPORT: | 19658 | /* EXPORT: |
| @@ -20152,7 +20149,7 @@ define_frame_cursor1 (f, cursor, pointer) | |||
| 20152 | #else | 20149 | #else |
| 20153 | if (bcmp (&cursor, &No_Cursor, sizeof (Cursor))) | 20150 | if (bcmp (&cursor, &No_Cursor, sizeof (Cursor))) |
| 20154 | #endif | 20151 | #endif |
| 20155 | rif->define_frame_cursor (f, cursor); | 20152 | FRAME_RIF (f)->define_frame_cursor (f, cursor); |
| 20156 | } | 20153 | } |
| 20157 | 20154 | ||
| 20158 | /* Take proper action when mouse has moved to the mode or header line | 20155 | /* Take proper action when mouse has moved to the mode or header line |
| @@ -20987,6 +20984,8 @@ void | |||
| 20987 | x_draw_vertical_border (w) | 20984 | x_draw_vertical_border (w) |
| 20988 | struct window *w; | 20985 | struct window *w; |
| 20989 | { | 20986 | { |
| 20987 | struct frame *f = XFRAME (WINDOW_FRAME (w)); | ||
| 20988 | |||
| 20990 | /* We could do better, if we knew what type of scroll-bar the adjacent | 20989 | /* We could do better, if we knew what type of scroll-bar the adjacent |
| 20991 | windows (on either side) have... But we don't :-( | 20990 | windows (on either side) have... But we don't :-( |
| 20992 | However, I think this works ok. ++KFS 2003-04-25 */ | 20991 | However, I think this works ok. ++KFS 2003-04-25 */ |
| @@ -21003,7 +21002,7 @@ x_draw_vertical_border (w) | |||
| 21003 | window_box_edges (w, -1, &x0, &y0, &x1, &y1); | 21002 | window_box_edges (w, -1, &x0, &y0, &x1, &y1); |
| 21004 | y1 -= 1; | 21003 | y1 -= 1; |
| 21005 | 21004 | ||
| 21006 | rif->draw_vertical_window_border (w, x1, y0, y1); | 21005 | FRAME_RIF (f)->draw_vertical_window_border (w, x1, y0, y1); |
| 21007 | } | 21006 | } |
| 21008 | else if (!WINDOW_LEFTMOST_P (w) | 21007 | else if (!WINDOW_LEFTMOST_P (w) |
| 21009 | && !WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w)) | 21008 | && !WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w)) |
| @@ -21013,7 +21012,7 @@ x_draw_vertical_border (w) | |||
| 21013 | window_box_edges (w, -1, &x0, &y0, &x1, &y1); | 21012 | window_box_edges (w, -1, &x0, &y0, &x1, &y1); |
| 21014 | y1 -= 1; | 21013 | y1 -= 1; |
| 21015 | 21014 | ||
| 21016 | rif->draw_vertical_window_border (w, x0, y0, y1); | 21015 | FRAME_RIF (f)->draw_vertical_window_border (w, x0, y0, y1); |
| 21017 | } | 21016 | } |
| 21018 | } | 21017 | } |
| 21019 | 21018 | ||
| @@ -21197,9 +21196,6 @@ expose_frame (f, x, y, w, h) | |||
| 21197 | 21196 | ||
| 21198 | TRACE ((stderr, "expose_frame ")); | 21197 | TRACE ((stderr, "expose_frame ")); |
| 21199 | 21198 | ||
| 21200 | /* XXX rif hack: Make sure redisplay interface is updated. */ | ||
| 21201 | rif = f->display_method->rif; | ||
| 21202 | |||
| 21203 | /* No need to redraw if frame will be redrawn soon. */ | 21199 | /* No need to redraw if frame will be redrawn soon. */ |
| 21204 | if (FRAME_GARBAGED_P (f)) | 21200 | if (FRAME_GARBAGED_P (f)) |
| 21205 | { | 21201 | { |
diff --git a/src/xfns.c b/src/xfns.c index 3306173580c..bfb4140f8d1 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -3191,9 +3191,6 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 3191 | 3191 | ||
| 3192 | check_x (); | 3192 | check_x (); |
| 3193 | 3193 | ||
| 3194 | /* XXX rif hack:Make sure rif is set to the right value. */ | ||
| 3195 | rif = x_display_method.rif; | ||
| 3196 | |||
| 3197 | /* Use this general default value to start with | 3194 | /* Use this general default value to start with |
| 3198 | until we know if this frame has a specified name. */ | 3195 | until we know if this frame has a specified name. */ |
| 3199 | Vx_resource_name = Vinvocation_name; | 3196 | Vx_resource_name = Vinvocation_name; |
diff --git a/src/xterm.c b/src/xterm.c index 01b500f1915..b850139de4c 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -3062,9 +3062,6 @@ static void | |||
| 3062 | frame_highlight (f) | 3062 | frame_highlight (f) |
| 3063 | struct frame *f; | 3063 | struct frame *f; |
| 3064 | { | 3064 | { |
| 3065 | /* XXX hack: make sure rif is right. */ | ||
| 3066 | rif = f->display_method->rif; | ||
| 3067 | |||
| 3068 | /* We used to only do this if Vx_no_window_manager was non-nil, but | 3065 | /* We used to only do this if Vx_no_window_manager was non-nil, but |
| 3069 | the ICCCM (section 4.1.6) says that the window's border pixmap | 3066 | the ICCCM (section 4.1.6) says that the window's border pixmap |
| 3070 | and border pixel are window attributes which are "private to the | 3067 | and border pixel are window attributes which are "private to the |
| @@ -3080,9 +3077,6 @@ static void | |||
| 3080 | frame_unhighlight (f) | 3077 | frame_unhighlight (f) |
| 3081 | struct frame *f; | 3078 | struct frame *f; |
| 3082 | { | 3079 | { |
| 3083 | /* XXX hack: make sure rif is right. */ | ||
| 3084 | rif = f->display_method->rif; | ||
| 3085 | |||
| 3086 | /* We used to only do this if Vx_no_window_manager was non-nil, but | 3080 | /* We used to only do this if Vx_no_window_manager was non-nil, but |
| 3087 | the ICCCM (section 4.1.6) says that the window's border pixmap | 3081 | the ICCCM (section 4.1.6) says that the window's border pixmap |
| 3088 | and border pixel are window attributes which are "private to the | 3082 | and border pixel are window attributes which are "private to the |