aboutsummaryrefslogtreecommitdiffstats
path: root/src/termchar.h
diff options
context:
space:
mode:
authorEli Zaretskii2010-10-30 15:09:52 +0200
committerEli Zaretskii2010-10-30 15:09:52 +0200
commitd009ae66b405e38113c1ed29ff50832e5eec2b29 (patch)
treef6fb055534f6b2b9c3b65ba785d167efc5e40f16 /src/termchar.h
parentaeeb3dcb656d2df4421f3c0a8b6416a5c1ea94a7 (diff)
downloademacs-d009ae66b405e38113c1ed29ff50832e5eec2b29.tar.gz
emacs-d009ae66b405e38113c1ed29ff50832e5eec2b29.zip
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.
Diffstat (limited to 'src/termchar.h')
-rw-r--r--src/termchar.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/termchar.h b/src/termchar.h
index 8135ac723e5..1b4cd0891da 100644
--- a/src/termchar.h
+++ b/src/termchar.h
@@ -34,18 +34,18 @@ struct tty_output
34struct tty_display_info 34struct 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
@@ -65,22 +65,24 @@ struct tty_display_info
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. */
@@ -96,7 +98,6 @@ struct tty_display_info
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. */
@@ -190,12 +191,12 @@ struct tty_display_info
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
@@ -214,7 +215,7 @@ struct tty_display_info
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;