aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorEli Zaretskii2010-10-31 20:50:02 +0200
committerEli Zaretskii2010-10-31 20:50:02 +0200
commit7ea692f66f4367755bb9e80991182ac55c90ead2 (patch)
treeb645d2ee172a015658b54f2ad245c924ad40e180 /src/lisp.h
parentd009ae66b405e38113c1ed29ff50832e5eec2b29 (diff)
downloademacs-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.h35
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. */
1568typedef 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)