[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: table.el 1.6.1
From: |
Kim F. Storm |
Subject: |
Re: table.el 1.6.1 |
Date: |
22 Mar 2002 16:01:23 +0100 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2.50 |
Richard Stallman <address@hidden> writes:
> Yes, the position-dependent menubar entry does work under 21.1.90,
> however does not work under 21.2.50 and 20.7.
>
> We decided to stop supporting position-dependent menubar entries
> because they did not work reliably. Emacs does not recompute the
> menubar when point moves, not in general. We figured that turning this
> off completely was easier than making the feature work well enough
> to be used.
>
> However, if it really needs to work, we could make it efficient.
> Emacs could recompute the menu bar whenever the keymap or local-map
> property at point now is different from the corresponding property
> at point last time.
I think it would be simpler to do an update whenever point moves in or
out of an interval -- it may be a little wasteful, but we already have
all the necessary information to do that in set_point_both, i.e. the
following change would seem to be sufficient (not tested).
It still doesn't work for menu-bar or tool-bar binding in overlay
keymaps, but it's better than before...
Index: intervals.c
===================================================================
RCS file: /cvs/emacs/src/intervals.c,v
retrieving revision 1.113
diff -c -r1.113 intervals.c
*** intervals.c 14 Mar 2002 08:11:46 -0000 1.113
--- intervals.c 22 Mar 2002 14:58:52 -0000
***************
*** 2002,2013 ****
fromprev = from;
/* Moving within an interval. */
! if (to == from && toprev == fromprev && INTERVAL_VISIBLE_P (to)
! && ! have_overlays)
{
! temp_set_point_both (buffer, charpos, bytepos);
! return;
}
original_position = charpos;
--- 2002,2019 ----
fromprev = from;
/* Moving within an interval. */
! if (to == from && toprev == fromprev && INTERVAL_VISIBLE_P (to))
{
! if (! have_overlays)
! {
! temp_set_point_both (buffer, charpos, bytepos);
! return;
! }
}
+ else
+ /* Refresh in case we entered or left an interval with with
+ menu-bar or tool-bar bindings in the keymap or local-map property. */
+ update_mode_lines++;
original_position = charpos;
--
Kim F. Storm <address@hidden> http://www.cua.dk
- table.el 1.6.1, Tak Ota, 2002/03/20
- Re: table.el 1.6.1, Richard Stallman, 2002/03/22
- Re: table.el 1.6.1,
Kim F. Storm <=
- Re: table.el 1.6.1, Kim F. Storm, 2002/03/22
- Re: table.el 1.6.1, Tak Ota, 2002/03/22
- Re: table.el 1.6.1, Kim F. Storm, 2002/03/22
- Re: table.el 1.6.1, Stefan Monnier, 2002/03/22
- Re: table.el 1.6.1, Tak Ota, 2002/03/22
- Re: table.el 1.6.1, Richard Stallman, 2002/03/23
- Re: table.el 1.6.1, Kim F. Storm, 2002/03/23
- Re: table.el 1.6.1, Richard Stallman, 2002/03/24
- Re: table.el 1.6.1, Stefan Monnier, 2002/03/25
- Re: table.el 1.6.1, Kim F. Storm, 2002/03/25