comparison src/termchar.h @ 111339:e302712538dc

Unify mouse highlight code of MSDOS and GUI sessions. xdisp.c (coords_in_mouse_face_p): Move prototype out of the HAVE_WINDOW_SYSTEM conditional. (x_y_to_hpos_vpos, frame_to_window_pixel_xy): Move out of the HAVE_WINDOW_SYSTEM block. (try_window_id) [HAVE_GPM || MSDOS]: Call x_clear_window_mouse_face. (draw_row_with_mouse_face): Implementation for HAVE_WINDOW_SYSTEM systems. (show_mouse_face): Call it, instead of calling draw_glyphs directly. (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p) (cursor_in_mouse_face_p, rows_from_pos_range) (mouse_face_from_buffer_pos, mouse_face_from_string_pos) (note_mode_line_or_margin_highlight, note_mouse_highlight) (x_clear_window_mouse_face, cancel_mouse_face): Move out of the HAVE_WINDOW_SYSTEM block. Ifdef away window-system specific fragments. (note_mouse_highlight): Call popup_activated for MSDOS as well. Clear mouse highlight if pointer is over glyphs whose OBJECT is an integer. (mouse_face_from_buffer_pos): Add parentheses around && within ||. xmenu.c (popup_activated): Don't define on MSDOS. dispnew.c (mirror_make_current): Set Y coordinate of the mode-line and header-line rows. termchar.h (struct tty_display_info): Define mouse_face_* members not only for MSDOS. Delete stray whitespace. <mouse_face_beg_x, mouse_face_beg_y, mouse_face_overlay>: New struct members. dispextern.h (DPYINFO_DEFINED) [HAVE_X_WINDOWS]: Define. (DPYINFO_DEFINED) [HAVE_NTGUI]: Define. (DPYINFO_DEFINED) [HAVE_NS]: Define. (Display_Info) [!DPYINFO_DEFINED]: Define here. (FRAME_X_DISPLAY_INFO) [HAVE_GPM]: Define. (FRAME_X_DISPLAY_INFO): Define to NULL if not defined. (frame_to_window_pixel_xy, note_mouse_highlight) (x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face) (show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of HAVE_WINDOW_SYSTEM conditional. (draw_row_with_mouse_face): Declare prototype. msdos.h (Display_Info): Don't define here. msdos.c (show_mouse_face, clear_mouse_face) (fast_find_position, IT_note_mode_line_highlight) (IT_note_mouse_highlight): Functions deleted. (IT_frame_up_to_date, dos_rawgetc): Call note_mouse_highlight instead of IT_note_mouse_highlight. (draw_row_with_mouse_face, popup_activated): New functions.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 30 Oct 2010 15:09:52 +0200
parents 1d1d5d9bd884
children 2186ab0af4a5
comparison
equal deleted inserted replaced
111229:9450439a37a3 111339:e302712538dc
32 /* Parameters that are shared between frames on the same tty device. */ 32 /* Parameters that are shared between frames on the same tty device. */
33 33
34 struct tty_display_info 34 struct tty_display_info
35 { 35 {
36 struct tty_display_info *next; /* Chain of all tty devices. */ 36 struct tty_display_info *next; /* Chain of all tty devices. */
37 37
38 char *name; /* The name of the device file or 0 if 38 char *name; /* The name of the device file or 0 if
39 stdin/stdout. */ 39 stdin/stdout. */
40 char *type; /* The type of the tty. */ 40 char *type; /* The type of the tty. */
41 41
42 /* Input/output */ 42 /* Input/output */
43 43
44 FILE *input; /* The stream to be used for terminal input. 44 FILE *input; /* The stream to be used for terminal input.
45 NULL if the terminal is suspended. */ 45 NULL if the terminal is suspended. */
46 FILE *output; /* The stream to be used for terminal output. 46 FILE *output; /* The stream to be used for terminal output.
47 NULL if the terminal is suspended. */ 47 NULL if the terminal is suspended. */
48 48
49 FILE *termscript; /* If nonzero, send all terminal output 49 FILE *termscript; /* If nonzero, send all terminal output
50 characters to this stream also. */ 50 characters to this stream also. */
51 51
52 struct emacs_tty *old_tty; /* The initial tty mode bits */ 52 struct emacs_tty *old_tty; /* The initial tty mode bits */
53 53
63 struct cm *Wcm; 63 struct cm *Wcm;
64 64
65 /* Redisplay. */ 65 /* Redisplay. */
66 66
67 Lisp_Object top_frame; /* The topmost frame on this tty. */ 67 Lisp_Object top_frame; /* The topmost frame on this tty. */
68 68
69 /* The previous frame we displayed on this tty. */ 69 /* The previous frame we displayed on this tty. */
70 struct frame *previous_frame; 70 struct frame *previous_frame;
71 int previous_color_mode; 71 int previous_color_mode;
72 72
73 #ifdef MSDOS
74 /* These variables describe the range of text currently shown in its 73 /* These variables describe the range of text currently shown in its
75 mouse-face, together with the window they apply to. As long as 74 mouse-face, together with the window they apply to. As long as
76 the mouse stays within this range, we need not redraw anything on 75 the mouse stays within this range, we need not redraw anything on
77 its account. Rows and columns are glyph matrix positions in 76 its account. Rows and columns are glyph matrix positions in
78 MOUSE_FACE_WINDOW. */ 77 MOUSE_FACE_WINDOW. */
79 int mouse_face_beg_row, mouse_face_beg_col; 78 int mouse_face_beg_row, mouse_face_beg_col;
79 int mouse_face_beg_x, mouse_face_beg_y;
80 int mouse_face_end_row, mouse_face_end_col; 80 int mouse_face_end_row, mouse_face_end_col;
81 int mouse_face_end_x, mouse_face_end_y;
81 int mouse_face_past_end; 82 int mouse_face_past_end;
82 Lisp_Object mouse_face_window; 83 Lisp_Object mouse_face_window;
83 int mouse_face_face_id; 84 int mouse_face_face_id;
85 Lisp_Object mouse_face_overlay;
84 86
85 /* 1 if a mouse motion event came and we didn't handle it right away because 87 /* 1 if a mouse motion event came and we didn't handle it right away because
86 gc was in progress. */ 88 gc was in progress. */
87 int mouse_face_deferred_gc; 89 int mouse_face_deferred_gc;
88 90
94 /* Nonzero means defer mouse-motion highlighting. */ 96 /* Nonzero means defer mouse-motion highlighting. */
95 int mouse_face_defer; 97 int mouse_face_defer;
96 98
97 /* Nonzero means that the mouse highlight should not be shown. */ 99 /* Nonzero means that the mouse highlight should not be shown. */
98 int mouse_face_hidden; 100 int mouse_face_hidden;
99 #endif /* !MSDOS */
100 101
101 /* Buffer used internally by termcap (see tgetent in the Termcap 102 /* Buffer used internally by termcap (see tgetent in the Termcap
102 manual). Only init_tty and delete_tty should change this. */ 103 manual). Only init_tty and delete_tty should change this. */
103 char *termcap_term_buffer; 104 char *termcap_term_buffer;
104 105
188 For t1061. */ 189 For t1061. */
189 190
190 int RPov; /* # chars to start a TS_repeat */ 191 int RPov; /* # chars to start a TS_repeat */
191 192
192 int delete_in_insert_mode; /* delete mode == insert mode */ 193 int delete_in_insert_mode; /* delete mode == insert mode */
193 194
194 int se_is_so; /* 1 if same string both enters and leaves 195 int se_is_so; /* 1 if same string both enters and leaves
195 standout mode */ 196 standout mode */
196 197
197 int costs_set; /* Nonzero if costs have been calculated. */ 198 int costs_set; /* Nonzero if costs have been calculated. */
198 199
199 int insert_mode; /* Nonzero when in insert mode. */ 200 int insert_mode; /* Nonzero when in insert mode. */
200 int standout_mode; /* Nonzero when in standout mode. */ 201 int standout_mode; /* Nonzero when in standout mode. */
201 202
202 203
203 204
212 213
213 Effectively it excludes the bottom frame_lines - specified_window_size 214 Effectively it excludes the bottom frame_lines - specified_window_size
214 lines from those operations. */ 215 lines from those operations. */
215 216
216 int specified_window; 217 int specified_window;
217 218
218 /* Flag used in tty_show/hide_cursor. */ 219 /* Flag used in tty_show/hide_cursor. */
219 220
220 int cursor_hidden; 221 int cursor_hidden;
221 222
222 /* Nonzero means use ^S/^Q for flow control. */ 223 /* Nonzero means use ^S/^Q for flow control. */