diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index c0796fc2eeb..359fd429329 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -797,6 +797,8 @@ and `case-fold-search' are both t." (defun hs-already-hidden-p () "Return non-nil if point is in an already-hidden block, otherwise nil." + ;; FIXME: We should probably also consider ourselves "in" a hidden block + ;; when point is right at the edge after a hidden block (bug#52092). (save-excursion (let ((c-reg (hs-inside-comment-p))) (if (and c-reg (nth 0 c-reg)) @@ -948,7 +950,7 @@ The hook `hs-hide-hook' is run; see `run-hooks'." "Toggle hiding/showing of a block. See `hs-hide-block' and `hs-show-block'. Argument E should be the event that triggered this action." - (interactive) + (interactive (list last-nonmenu-event)) (hs-life-goes-on (posn-set-point (event-end e)) (if (hs-already-hidden-p) diff --git a/src/keyboard.c b/src/keyboard.c index ca51c80da04..da244904a4a 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -11797,6 +11797,9 @@ DEFUN ("posn-at-point", Fposn_at_point, Sposn_at_point, 0, 2, 0, doc: /* Return position information for buffer position POS in WINDOW. POS defaults to point in WINDOW; WINDOW defaults to the selected window. +If POS is in invisible text or is hidden by `display' properties, +this function may report on buffer positions before or after POS. + Return nil if POS is not visible in WINDOW. Otherwise, the return value is similar to that returned by `event-start' for a mouse click at the upper left corner of the glyph corresponding