diff --git a/src/xdisp.c b/src/xdisp.c index b14b7daf2b..d5fa3a1cfe 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -25210,6 +25210,10 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop, + (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (it->w) ? WINDOW_RIGHT_FRINGE_WIDTH (it->w) : 0))); + if (EQ (prop, Qleft_edge)) + return OK_ALIGN_TO (WINDOW_LEFT_PIXEL_EDGE (it->w)); + if (EQ (prop, Qright_edge)) + return OK_ALIGN_TO (WINDOW_RIGHT_PIXEL_EDGE (it->w)); } else { @@ -25223,6 +25227,13 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop, return OK_PIXELS (WINDOW_RIGHT_MARGIN_WIDTH (it->w)); if (EQ (prop, Qscroll_bar)) return OK_PIXELS (WINDOW_SCROLL_BAR_AREA_WIDTH (it->w)); + if (EQ (prop, Qleft)) + return OK_PIXELS (window_box_left_offset (it->w, TEXT_AREA)); + if (EQ (prop, Qright)) + return OK_PIXELS (window_box_right_offset (it->w, TEXT_AREA)); + if (EQ (prop, Qcenter)) + return OK_PIXELS (window_box_left_offset (it->w, TEXT_AREA) + + window_box_width (it->w, TEXT_AREA) / 2); } prop = buffer_local_value (prop, it->w->contents); @@ -32207,6 +32218,8 @@ They are still logged to the *Messages* buffer. */); DEFSYM (Qspace, "space"); DEFSYM (Qmargin, "margin"); DEFSYM (Qpointer, "pointer"); + DEFSYM (Qleft_edge, "left-edge"); + DEFSYM (Qright_edge, "right-edge"); DEFSYM (Qleft_margin, "left-margin"); DEFSYM (Qright_margin, "right-margin"); DEFSYM (Qcenter, "center");