diff options
| author | Eli Zaretskii | 2010-10-30 15:09:52 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2010-10-30 15:09:52 +0200 |
| commit | d009ae66b405e38113c1ed29ff50832e5eec2b29 (patch) | |
| tree | f6fb055534f6b2b9c3b65ba785d167efc5e40f16 /src/termchar.h | |
| parent | aeeb3dcb656d2df4421f3c0a8b6416a5c1ea94a7 (diff) | |
| download | emacs-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.h | 23 |
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 | |||
| 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 | ||
| @@ -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; |