diff options
| author | Eli Zaretskii | 2010-10-31 20:50:02 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2010-10-31 20:50:02 +0200 |
| commit | 7ea692f66f4367755bb9e80991182ac55c90ead2 (patch) | |
| tree | b645d2ee172a015658b54f2ad245c924ad40e180 /src/lisp.h | |
| parent | d009ae66b405e38113c1ed29ff50832e5eec2b29 (diff) | |
| download | emacs-7ea692f66f4367755bb9e80991182ac55c90ead2.tar.gz emacs-7ea692f66f4367755bb9e80991182ac55c90ead2.zip | |
Start redesigning portable mouse highlight. Not compiled.
xdisp.c (get_tool_bar_item, handle_tool_bar_click)
(note_tool_bar_highlight, draw_glyphs, erase_phys_cursor)
(show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
(note_mode_line_or_margin_highlight, note_mouse_highlight)
(x_clear_window_mouse_face, cancel_mouse_face, expose_frame):
Replace Display_Info with Mouse_HLInfo everywhere where
mouse_face_* members were accessed for mouse highlight purposes.
frame.h (MOUSE_HL_INFO): New macro.
lisp.h (Mouse_HLInfo): New data type.
xterm.h (struct x_display_info):
w32term.h (struct w32_display_info):
nsterm.h (struct ns_display_info):
termchar.h (struct tty_display_info): Use it instead of
mouse_face_* members.
dispextern.h (DPYINFO_DEFINED): Remove definition.
(FRAME_X_DISPLAY_INFO): Remove definition.
(show_mouse_face, clear_mouse_face): Update type of 1st argument.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h index c9104f88954..4adf9ef9c69 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -1563,6 +1563,41 @@ typedef struct { | |||
| 1563 | /* The ID of the mode line highlighting face. */ | 1563 | /* The ID of the mode line highlighting face. */ |
| 1564 | #define GLYPH_MODE_LINE_FACE 1 | 1564 | #define GLYPH_MODE_LINE_FACE 1 |
| 1565 | 1565 | ||
| 1566 | /* Structure to hold mouse highlight data. This is here because other | ||
| 1567 | header files need it for defining struct x_output etc. */ | ||
| 1568 | typedef struct { | ||
| 1569 | /* These variables describe the range of text currently shown in its | ||
| 1570 | mouse-face, together with the window they apply to. As long as | ||
| 1571 | the mouse stays within this range, we need not redraw anything on | ||
| 1572 | its account. Rows and columns are glyph matrix positions in | ||
| 1573 | MOUSE_FACE_WINDOW. */ | ||
| 1574 | int mouse_face_beg_row, mouse_face_beg_col; | ||
| 1575 | int mouse_face_beg_x, mouse_face_beg_y; | ||
| 1576 | int mouse_face_end_row, mouse_face_end_col; | ||
| 1577 | int mouse_face_end_x, mouse_face_end_y; | ||
| 1578 | int mouse_face_past_end; | ||
| 1579 | Lisp_Object mouse_face_window; | ||
| 1580 | int mouse_face_face_id; | ||
| 1581 | Lisp_Object mouse_face_overlay; | ||
| 1582 | |||
| 1583 | /* 1 if a mouse motion event came and we didn't handle it right away because | ||
| 1584 | gc was in progress. */ | ||
| 1585 | int mouse_face_deferred_gc; | ||
| 1586 | |||
| 1587 | /* FRAME and X, Y position of mouse when last checked for | ||
| 1588 | highlighting. X and Y can be negative or out of range for the frame. */ | ||
| 1589 | struct frame *mouse_face_mouse_frame; | ||
| 1590 | int mouse_face_mouse_x, mouse_face_mouse_y; | ||
| 1591 | |||
| 1592 | /* Nonzero means defer mouse-motion highlighting. */ | ||
| 1593 | int mouse_face_defer; | ||
| 1594 | |||
| 1595 | /* Nonzero means that the mouse highlight should not be shown. */ | ||
| 1596 | int mouse_face_hidden; | ||
| 1597 | |||
| 1598 | int mouse_face_image_state; | ||
| 1599 | } Mouse_HLInfo; | ||
| 1600 | |||
| 1566 | /* Data type checking */ | 1601 | /* Data type checking */ |
| 1567 | 1602 | ||
| 1568 | #define NILP(x) EQ (x, Qnil) | 1603 | #define NILP(x) EQ (x, Qnil) |