GNU bug report logs - #79294
[PATCH] Add hideable indicators for hideshow.

Previous Next

Package: emacs;

Reported by: Elijah Gabe Pérez <eg642616 <at> gmail.com>

Date: Sat, 23 Aug 2025 04:57:02 UTC

Severity: normal

Tags: patch

Full log


View this message in rfc822 format

From: Elijah Gabe Pérez <eg642616 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 79294 <at> debbugs.gnu.org
Subject: bug#79294: [PATCH] Add hideable indicators for hideshow.
Date: Mon, 15 Sep 2025 14:21:35 -0600
[Message part 1 (text/plain, inline)]
>> > What doesn't work well in mouse-1 clicks on the fringes?
>> 
>> Apparently the fringe keymap does not work if the overlay is not created
>> from BOL:
>> 
>> e.g.
>> 
>> The mouse-1 clicks works for this since it is created at BOL:
>> 
>> #+begin_src elisp
>> |+| (defvar-local var nil
>> | |  "Docstring.")
>> #+end_src
>> 
>> But for code blocks that are not at BOL this will not work:
>> 
>> #+begin_src elisp
>> |+| (defvar-local var ; <- This works
>> |+|   (when foo ; <- This does not
>> | |     (bar))
>> | |  "Docstring.")
>> #+end_src
>
> Maybe it's a bug?  Can you show a simple Lisp program that I could
> evaluate in *scratch* and use to look into this issue?

Sure, here is a recipe:

1. M-x fundamental-mode

2. M-:
   (insert
    "  "
    (propertize
     "x"
     'display '(left-fringe
                left-arrow
                error)
     'keymap (let ((map (make-sparse-keymap)))
               (define-key map (kbd "<left-fringe> <mouse-1>")
                           (lambda ()
                             (interactive)
                             (print "message!")))
               map)))

3. Click on the fringe icon, it should not work an throw the
"<left-fringe> <mouse-1> is undefined" message.

4. M-: ; (Same code but without the spaces at BOL)
   (insert
    (propertize
     "x"
     'display '(left-fringe
                left-arrow
                error)
     'keymap (let ((map (make-sparse-keymap)))
               (define-key map (kbd "<left-fringe> <mouse-1>")
                           (lambda ()
                             (interactive)
                             (print "message!")))
               map)))

5. Click on the fringe icon, it should display the message "message!".

I'm not sure if this is a known bug, but I've seen packages that locally
(in the buffer local map) bind mouse-1 to a command that scans for the
overlay in some region of the buffer, probably the fringe keymap doesn't
support this yet.

For the patch, I have already solved this problem, although I am not
happy with the solution, it is possibly the only way to solve this:

[0001-Add-hideable-indicators-for-hideshow.-Bug-79294.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
-- 
- E.G via Gnus and Org.

This bug report was last modified 3 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.