[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/dispextern.h [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/src/dispextern.h [lexbind] |
Date: |
Wed, 08 Dec 2004 19:34:13 -0500 |
Index: emacs/src/dispextern.h
diff -c emacs/src/dispextern.h:1.136.2.17 emacs/src/dispextern.h:1.136.2.18
*** emacs/src/dispextern.h:1.136.2.17 Mon Oct 25 04:19:35 2004
--- emacs/src/dispextern.h Wed Dec 8 23:31:37 2004
***************
*** 694,699 ****
--- 694,703 ----
frames. It may be < 0 in case of completely invisible rows. */
int visible_height;
+ /* Extra line spacing added after this row. Do not consider this
+ in last row when checking if row is fully visible. */
+ int extra_line_spacing;
+
/* Hash code. This hash code is available as soon as the row
is constructed, i.e. after a call to display_line. */
unsigned hash;
***************
*** 916,937 ****
#define MATRIX_ROW_DISPLAYS_TEXT_P(ROW) ((ROW)->displays_text_p)
/* Non-zero if ROW is not completely visible in window W. */
! #define MATRIX_ROW_PARTIALLY_VISIBLE_P(ROW) \
! ((ROW)->height != (ROW)->visible_height)
/* Non-zero if ROW is partially visible at the top of window W. */
#define MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P(W, ROW) \
! (MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW)) \
! && (ROW)->y < WINDOW_HEADER_LINE_HEIGHT ((W)))
/* Non-zero if ROW is partially visible at the bottom of window W. */
! #define MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P(W, ROW) \
! (MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW)) \
! && (ROW)->y + (ROW)->height > WINDOW_BOX_HEIGHT_NO_MODE_LINE ((W)))
/* Return the bottom Y + 1 of ROW. */
--- 920,958 ----
#define MATRIX_ROW_DISPLAYS_TEXT_P(ROW) ((ROW)->displays_text_p)
+
+ /* Helper macros */
+
+ #define MR_PARTIALLY_VISIBLE(ROW) \
+ ((ROW)->height != (ROW)->visible_height)
+
+ #define MR_PARTIALLY_VISIBLE_AT_TOP(W, ROW) \
+ ((ROW)->y < WINDOW_HEADER_LINE_HEIGHT ((W)))
+
+ #define MR_PARTIALLY_VISIBLE_AT_BOTTOM(W, ROW) \
+ (((ROW)->y + (ROW)->height - (ROW)->extra_line_spacing) \
+ > WINDOW_BOX_HEIGHT_NO_MODE_LINE ((W)))
+
/* Non-zero if ROW is not completely visible in window W. */
! #define MATRIX_ROW_PARTIALLY_VISIBLE_P(W, ROW) \
! (MR_PARTIALLY_VISIBLE ((ROW)) \
! && (MR_PARTIALLY_VISIBLE_AT_TOP ((W), (ROW)) \
! || MR_PARTIALLY_VISIBLE_AT_BOTTOM ((W), (ROW))))
!
!
/* Non-zero if ROW is partially visible at the top of window W. */
#define MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P(W, ROW) \
! (MR_PARTIALLY_VISIBLE ((ROW)) \
! && MR_PARTIALLY_VISIBLE_AT_TOP ((W), (ROW)))
/* Non-zero if ROW is partially visible at the bottom of window W. */
! #define MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P(W, ROW) \
! (MR_PARTIALLY_VISIBLE ((ROW)) \
! && MR_PARTIALLY_VISIBLE_AT_BOTTOM ((W), (ROW)))
/* Return the bottom Y + 1 of ROW. */
***************
*** 1990,1999 ****
line, if the window has one. */
int last_visible_y;
! /* Additional space in pixels between lines (for window systems
! only.) */
int extra_line_spacing;
/* Override font height information for this glyph.
Used if override_ascent >= 0. Cleared after this glyph. */
int override_ascent, override_descent, override_boff;
--- 2011,2023 ----
line, if the window has one. */
int last_visible_y;
! /* Default amount of additional space in pixels between lines (for
! window systems only.) */
int extra_line_spacing;
+ /* Max extra line spacing added in this row. */
+ int max_extra_line_spacing;
+
/* Override font height information for this glyph.
Used if override_ascent >= 0. Cleared after this glyph. */
int override_ascent, override_descent, override_boff;
***************
*** 2578,2583 ****
--- 2602,2608 ----
extern struct frame *last_mouse_frame;
extern int last_tool_bar_item;
extern int mouse_autoselect_window;
+ extern void reseat_at_previous_visible_line_start P_ ((struct it *));
extern int calc_pixel_width_or_height P_ ((double *, struct it *, Lisp_Object,
/* XFontStruct */ void *, int, int
*));