aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.h')
-rw-r--r--src/window.h33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/window.h b/src/window.h
index de77dcabc85..f5ae81149b3 100644
--- a/src/window.h
+++ b/src/window.h
@@ -236,6 +236,9 @@ struct window
236 /* Where the cursor actually is. */ 236 /* Where the cursor actually is. */
237 struct cursor_pos phys_cursor; 237 struct cursor_pos phys_cursor;
238 238
239 /* Internally used for redisplay purposes. */
240 struct cursor_pos output_cursor;
241
239 /* Vertical cursor position as of last update that completed 242 /* Vertical cursor position as of last update that completed
240 without pause. This is the position of last_point. */ 243 without pause. This is the position of last_point. */
241 int last_cursor_vpos; 244 int last_cursor_vpos;
@@ -261,6 +264,12 @@ struct window
261 A value of -1 means use frame values. */ 264 A value of -1 means use frame values. */
262 int scroll_bar_width; 265 int scroll_bar_width;
263 266
267 /* Effective height of the mode line, or -1 if not known. */
268 int mode_line_height;
269
270 /* Effective height of the header line, or -1 if not known. */
271 int header_line_height;
272
264 /* Z - the buffer position of the last glyph in the current 273 /* Z - the buffer position of the last glyph in the current
265 matrix of W. Only valid if window_end_valid is nonzero. */ 274 matrix of W. Only valid if window_end_valid is nonzero. */
266 ptrdiff_t window_end_pos; 275 ptrdiff_t window_end_pos;
@@ -856,14 +865,6 @@ extern Lisp_Object minibuf_window;
856 865
857extern Lisp_Object minibuf_selected_window; 866extern Lisp_Object minibuf_selected_window;
858 867
859/* Window that the mouse is over (nil if no mouse support). */
860
861extern Lisp_Object Vmouse_window;
862
863/* Last mouse-click event (nil if no mouse support). */
864
865extern Lisp_Object Vmouse_event;
866
867extern Lisp_Object make_window (void); 868extern Lisp_Object make_window (void);
868extern Lisp_Object window_from_coordinates (struct frame *, int, int, 869extern Lisp_Object window_from_coordinates (struct frame *, int, int,
869 enum window_part *, bool); 870 enum window_part *, bool);
@@ -956,6 +957,22 @@ extern void init_window (void);
956extern void syms_of_window (void); 957extern void syms_of_window (void);
957extern void keys_of_window (void); 958extern void keys_of_window (void);
958 959
960/* Move cursor to row/column position VPOS/HPOS, pixel coordinates
961 Y/X. HPOS/VPOS are window-relative row and column numbers and X/Y
962 are window-relative pixel positions. This is always done during
963 window update, so the position is the future output cursor position
964 for currently updated window W. */
965
966WINDOW_INLINE void
967output_cursor_to (struct window *w, int vpos, int hpos, int y, int x)
968{
969 eassert (w);
970 w->output_cursor.hpos = hpos;
971 w->output_cursor.vpos = vpos;
972 w->output_cursor.x = x;
973 w->output_cursor.y = y;
974}
975
959INLINE_HEADER_END 976INLINE_HEADER_END
960 977
961#endif /* not WINDOW_H_INCLUDED */ 978#endif /* not WINDOW_H_INCLUDED */