GNU bug report logs - #10459
Overlay keymaps ignored until point is moved when overlay is created from timer

Previous Next

Package: emacs;

Reported by: Toby Cubitt <toby-predictive-dated-1327275432.bb87aa <at> dr-qubit.org>

Date: Mon, 9 Jan 2012 00:50:02 UTC

Severity: normal

Merged with 4081, 4093, 11088

Found in version 24.0.94

Fixed in version 24.4

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#10459: closed (Overlay keymaps ignored until point is moved
 when overlay is created from timer)
Date: Sun, 05 Oct 2014 01:22:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 05 Oct 2014 05:21:25 +0400
with message-id <86zjdb8g6i.fsf <at> yandex.ru>
and subject line Re: bug#10459: Overlay keymaps ignored until point is moved when overlay is created from timer
has caused the debbugs.gnu.org bug report #10459,
regarding Overlay keymaps ignored until point is moved when overlay is created from timer
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
10459: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10459
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Toby Cubitt <tsc25 <at> cantab.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Overlay keymaps ignored until point is moved when overlay is created
	from timer
Date: Sun, 8 Jan 2012 16:14:54 +0100
Emacs versions known to be affected:
------------------------------------
23.2.1, 24 (recent bzr checkout).


Steps to reproduce:
-------------------

1. Define the following function:

(defun test ()
  (interactive)
  (run-with-timer 
   2 nil
   (lambda ()
     (setq overlay (make-overlay 4 8))
     (overlay-put overlay 'face '(background-color . "black"))
     (let ((map (make-sparse-keymap)))
       (overlay-put overlay 'keymap map)
       (define-key map "t" (lambda () (interactive) 
			     (message "overlay keymap binding")))))))

2. Position point somewhere between 4 and 8.

3. M-x test

4. type "t" (*without* moving point first)


Expected output:
----------------
Overlay keymap binding should display the message "overlay keymap binding".


Actual output:
--------------
Default `self-insert-command' binding inserts character "t" into the buffer.


Additional information:
-----------------------
Note that moving the point, e.g. one character to the right and then back,
in between septs 3. and 4. seems to activate the overlay keymap binding,
so that typing "t" in step 4. displays the correct message.

-- 
Dr T. S. Cubitt
Mathematics and Quantum Information group
Department of Mathematics
Complutense University
Madrid, Spain


[Message part 3 (message/rfc822, inline)]
From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Toby Cubitt <toby-predictive-dated-1327924137.9ab140 <at> dr-qubit.org>
Cc: 10459-done <at> debbugs.gnu.org, Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Subject: Re: bug#10459: Overlay keymaps ignored until point is moved when
 overlay is created from timer
Date: Sun, 05 Oct 2014 05:21:25 +0400
Version: 24.4

> On Sun, Jan 08, 2012 at 10:52:54PM -0500, Stefan Monnier wrote:
>> Yes, this is a known limitation: the set of active keymaps is computed
>> before waiting for the next key sequence.

This has been fixed around the start of 24.4 development: the set of
keymaps is recomputed at the start of a key sequence.

The examples in this and merged bugs work for me now. Please feel free
to reopen if you see a case where the problem's not fixed.


This bug report was last modified 10 years and 232 days ago.

Previous Next


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