unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: C-l while in menu?
       [not found] ` <200204072343.g37NhIC20114@aztec.santafe.edu>
@ 2002-04-19 18:58   ` Pavel Janík
  2002-04-20 17:27     ` Richard Stallman
  2002-04-22  1:27     ` Miles Bader
  0 siblings, 2 replies; 93+ messages in thread
From: Pavel Janík @ 2002-04-19 18:58 UTC (permalink / raw)
  Cc: emacs-devel

   From: Richard Stallman <rms@gnu.org>
   Date: Sun, 7 Apr 2002 17:43:18 -0600 (MDT)

   > Other people have requested that characters typed while a menu is
   > visible should control menu selections rather than being interpreted
   > in the usual way by Emacs.  Implementing that would be a good way to
   > fix this, and it might not even be terribly hard.  The code
   > that implements the menus normally used is in lwlib/xlwmenu.c
   > which is only 2141 lines long.

The first part of this is done (keyboard can control menu, no shortcuts
yet). I will commit it in a moment. Changes are:

2002-04-19  Pavel Janík  <Pavel@Janik.cz>

	* xterm.c (note_mode_line_or_margin_highlight): Remove unused
	variables `row', `i' and `area'.
	(XTread_socket) <KeyPress>: Pass KeyPress events when in menu to
	toolkit library.

2002-04-19  Pavel Janík  <Pavel@Janik.cz>

	These changes allow moving in menu via keyboard.
	
	* xlwmenu.c (xlwMenuTranslations, xlwMenuActionsList): Add
	translations for cursor keys and RET.
	(find_next_selectable, find_prev_selectable): New functions used
	for finding menu-items.
	(Down, Up, Left, Right): New functions.


I'd be glad to receive feedback from you (I already received some notes
from Gerd). There are also two or three FIXMEs in the code. If you can tell
me what do you think about them or (better ;-) fix that in the code, I am
happy.
-- 
Pavel Janík

Never engage in a battle of wits with an idiot;  they will bring
you down to their level, then beat you with experience.
                  -- Jeremy Jackson in linux-kernel

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-19 18:58   ` C-l while in menu? Pavel Janík
@ 2002-04-20 17:27     ` Richard Stallman
  2002-04-20 21:06       ` Pavel Janík
  2002-04-22  1:27     ` Miles Bader
  1 sibling, 1 reply; 93+ messages in thread
From: Richard Stallman @ 2002-04-20 17:27 UTC (permalink / raw)
  Cc: emacs-devel

Can you see what is required to make this feature work with LessTif too?
If you can't figure out from the docs what needs doing,
perhaps toshok@hungry.com could give you advice.

Another useful feature is to provide ways to activate the menus from
the keyboard, compatible with what people expect in other programs.
I am told that XEmacs has this feature too.

It might not be easy to find key bindings for it, though.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-20 17:27     ` Richard Stallman
@ 2002-04-20 21:06       ` Pavel Janík
  2002-04-21 11:17         ` Gerd Moellmann
  2002-04-22  7:46         ` Richard Stallman
  0 siblings, 2 replies; 93+ messages in thread
From: Pavel Janík @ 2002-04-20 21:06 UTC (permalink / raw)
  Cc: Gerd Moellmann

   From: Richard Stallman <rms@gnu.org>
   Date: Sat, 20 Apr 2002 11:27:13 -0600 (MDT)

   > Can you see what is required to make this feature work with LessTif too?
   > If you can't figure out from the docs what needs doing,
   > perhaps toshok@hungry.com could give you advice.

Well, it almost works. Current CVS just process only the first key,
because popup_activated_flag is 1 only at that moment. After the first key
is processed, popup_deactivate_callback is called (many times) and that
variable is zeroed. And from now on, key in menu are no longer processed.

Good. After:

--- /home/pavel/.Emacs/Work/emacs/src/xmenu.c   Mon Jan  7 06:48:44 2002
+++ ./xmenu.c   Sat Apr 20 21:54:41 2002
@@ -1154,7 +1154,7 @@
      LWLIB_ID id;
      XtPointer client_data;
 {
-  popup_activated_flag = 1;
+  popup_activated_flag += 1;
 }
 
 /* This callback is invoked when a dialog or menu is finished being
@@ -1166,7 +1166,7 @@
      LWLIB_ID id;
      XtPointer client_data;
 {
-  popup_activated_flag = 0;
+  popup_activated_flag -= 1;
 }
 
 /* Lwlib callback called when menu items are highlighted/unhighlighted

Menu works, because popup_activated_flag is going to negative numbers very
fast... But I can no longer enter any character in the buffer, because
those keypress events are processed in menu... So I think it is not about
Lesstif knowledge, it is about how Lesstif is used in Emacs. I do not use
Lesstif so perhaps Gerd can help me. Or anyone else?

   > Another useful feature is to provide ways to activate the menus from
   > the keyboard, compatible with what people expect in other programs.
   > I am told that XEmacs has this feature too.

Yes, this will be the second step. But I;d like to finish this one before
doing additional things.

   > It might not be easy to find key bindings for it, though.

I think it is very easy. We should use F10, and invent new variable
f10-should-use-tmm (this is only idea to exactly describe its meaning...)
defaulting to nil.
-- 
Pavel Janík

panic ("No CPUs found.  System halted.\n");
                  -- 2.4.3 arch/parisc/kernel/setup.c

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-20 21:06       ` Pavel Janík
@ 2002-04-21 11:17         ` Gerd Moellmann
  2002-04-21 13:23           ` Pavel Janík
  2002-05-08 14:38           ` Pavel Janík
  2002-04-22  7:46         ` Richard Stallman
  1 sibling, 2 replies; 93+ messages in thread
From: Gerd Moellmann @ 2002-04-21 11:17 UTC (permalink / raw)
  Cc: Richard Stallman, emacs-devel

Pavel@janik.cz (Pavel Janík) writes:

> Menu works, because popup_activated_flag is going to negative numbers very
> fast... But I can no longer enter any character in the buffer, because
> those keypress events are processed in menu... So I think it is not about
> Lesstif knowledge, it is about how Lesstif is used in Emacs. I do not use
> Lesstif so perhaps Gerd can help me.

That sounds like a problem I had with Lesstif in the past, and which
got fixed in Lesstif with the friendly help of Lesstif hackers, IIRC.

I'd check the behavior with OpenMotif and with the newest Lesstif from
CVS.  If it works in OpenMotif and doesn't work in Lesstif, I think
lesstif@hungry.com would be interested in fixing it in Lesstif.

Otherwise, I'm pretty sure someone will be willing to help out.  They
were very cooperative last time I tried.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-21 11:17         ` Gerd Moellmann
@ 2002-04-21 13:23           ` Pavel Janík
  2002-04-21 14:04             ` Gerd Moellmann
  2002-05-08 14:38           ` Pavel Janík
  1 sibling, 1 reply; 93+ messages in thread
From: Pavel Janík @ 2002-04-21 13:23 UTC (permalink / raw)
  Cc: Richard Stallman, emacs-devel

   From: gerd.moellmann@t-online.de (Gerd Moellmann)
   Date: 21 Apr 2002 13:17:03 +0200

   > That sounds like a problem I had with Lesstif in the past, and which
   > got fixed in Lesstif with the friendly help of Lesstif hackers, IIRC.

I do not think it is the case. The same happens when using latest CVS of
Lesstif and also with openmotif. I still think that the problem is in
Emacs.
-- 
Pavel Janík

panic("mother...");
                  -- 2.2.16 drivers/block/cpqarray.c

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-21 13:23           ` Pavel Janík
@ 2002-04-21 14:04             ` Gerd Moellmann
  0 siblings, 0 replies; 93+ messages in thread
From: Gerd Moellmann @ 2002-04-21 14:04 UTC (permalink / raw)
  Cc: Richard Stallman, emacs-devel

Pavel@janik.cz (Pavel Janík) writes:

>    From: gerd.moellmann@t-online.de (Gerd Moellmann)
>    Date: 21 Apr 2002 13:17:03 +0200
> 
>    > That sounds like a problem I had with Lesstif in the past, and which
>    > got fixed in Lesstif with the friendly help of Lesstif hackers, IIRC.
> 
> I do not think it is the case. The same happens when using latest CVS of
> Lesstif and also with openmotif. I still think that the problem is in
> Emacs.

That's well possible, although what you describe is strikingly similar
to what I encountered with a previous Lesstif version.  If it is
Emacs' fault, there's no other way than getting into GDB, I guess.

(Are you sure you've got the right include paths, recompiled
everything, and set LD_LIBRARY_PATH right when switching between
Lesstif/Motif?  That was one of my pet mistakes in the past.)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-19 18:58   ` C-l while in menu? Pavel Janík
  2002-04-20 17:27     ` Richard Stallman
@ 2002-04-22  1:27     ` Miles Bader
  2002-04-22  6:09       ` Eli Zaretskii
  1 sibling, 1 reply; 93+ messages in thread
From: Miles Bader @ 2002-04-22  1:27 UTC (permalink / raw)
  Cc: Richard Stallman, emacs-devel

Pavel@Janik.cz (Pavel Janík) writes:
> The first part of this is done (keyboard can control menu, no shortcuts
> yet). I will commit it in a moment. Changes are:

I just tried it, it seems very cool.

Now if only F10 would pop up a real menu on X instead of the tmm loser
menus...

-Miles

-- 
Saa, shall we dance?  (from a dance-class advertisement)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  1:27     ` Miles Bader
@ 2002-04-22  6:09       ` Eli Zaretskii
  0 siblings, 0 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-22  6:09 UTC (permalink / raw)
  Cc: Pavel Janík, Richard Stallman, emacs-devel


On 22 Apr 2002, Miles Bader wrote:

> Now if only F10 would pop up a real menu on X instead of the tmm loser
> menus...

Yes.  In fact, I find support for keyboard keys in the menus rather 
pointless without being able to pop up the menu via the keyboard.  Why 
would someone click the mouse to drop down a menu, then move the arm to 
the keyboard to continue?

(Of course, I don't object to the change Pavel did.)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-20 21:06       ` Pavel Janík
  2002-04-21 11:17         ` Gerd Moellmann
@ 2002-04-22  7:46         ` Richard Stallman
  2002-04-22  8:55           ` Pavel Janík
                             ` (2 more replies)
  1 sibling, 3 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-22  7:46 UTC (permalink / raw)
  Cc: gerd, emacs-devel

       > It might not be easy to find key bindings for it, though.

    I think it is very easy. We should use F10, and invent new variable
    f10-should-use-tmm (this is only idea to exactly describe its meaning...)
    defaulting to nil.

What key bindings does XEmacs use for this feature?
Maybe we should use the same ones, if there is no disadvantage.

Another menu feature that users have asked for is a way to display
proper-looking menus on ttys.  The idea is that they would look as
much like X toolkit menus as is possible on a tty.  These menus could
be implemented in xdisp.c by overwriting the menu contents into the
desired glyphs array for the frame.  (There is just one glyphs array
for an entire frame, on a tty.)

These menus could be controlled by the same tty commands that you
are implementing in menus under X.

This way we could replace tmm completely.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  7:46         ` Richard Stallman
@ 2002-04-22  8:55           ` Pavel Janík
  2002-04-22 10:03             ` Stefan Monnier
                               ` (2 more replies)
  2002-04-22  9:28           ` Stefan Monnier
  2002-04-22 11:39           ` Eli Zaretskii
  2 siblings, 3 replies; 93+ messages in thread
From: Pavel Janík @ 2002-04-22  8:55 UTC (permalink / raw)


   From: Richard Stallman <rms@gnu.org>
   Date: Mon, 22 Apr 2002 01:46:57 -0600 (MDT)

   >        > It might not be easy to find key bindings for it, though.
   > 
   >     I think it is very easy. We should use F10, and invent new variable
   >     f10-should-use-tmm (this is only idea to exactly describe its meaning...)
   >     defaulting to nil.
   > 
   > What key bindings does XEmacs use for this feature?
   > Maybe we should use the same ones, if there is no disadvantage.

To say the truth, I could not find the key that pop-up the menu in
XEmacs :-( I can not download newer version of XEmacs, because I'm at home
these days (illness, slow and rather expensive Internet connection). I've
tested xemacs-21.5.5.tar.gz but I did not find it :-( Can anyone help me
with this?

   > Another menu feature that users have asked for is a way to display
   > proper-looking menus on ttys.  The idea is that they would look as
   > much like X toolkit menus as is possible on a tty.  These menus could
   > be implemented in xdisp.c by overwriting the menu contents into the
   > desired glyphs array for the frame.  (There is just one glyphs array
   > for an entire frame, on a tty.)
   > 
   > These menus could be controlled by the same tty commands that you
   > are implementing in menus under X.
   > 
   > This way we could replace tmm completely.

Yes, this is already in TODO. I will see what I can do with it.


   From: Miles Bader <miles@lsi.nec.co.jp>
   Date: 22 Apr 2002 10:27:43 +0900

   > Pavel@Janik.cz (Pavel Janík) writes:
   > > The first part of this is done (keyboard can control menu, no shortcuts
   > > yet). I will commit it in a moment. Changes are:
   > 
   > I just tried it, it seems very cool.
   > 
   > Now if only F10 would pop up a real menu on X instead of the tmm loser
   > menus...

;-) I have already wrote that to xlwmenu.c as FIXME:

/* FIXME: Should F10 enter to menu?  Which one?  File?  */


   From: Eli Zaretskii <eliz@is.elta.co.il>
   Date: Mon, 22 Apr 2002 09:09:08 +0300 (IDT)

   > On 22 Apr 2002, Miles Bader wrote:
   > 
   > > Now if only F10 would pop up a real menu on X instead of the tmm loser
   > > menus...
   > 
   > Yes.  In fact, I find support for keyboard keys in the menus rather 
   > pointless without being able to pop up the menu via the keyboard.  Why 
   > would someone click the mouse to drop down a menu, then move the arm to 
   > the keyboard to continue?

This is the first step.

BTW - I have some questions/issues about the current code (they are also in
xlwmenu.c file). What do you think about them?

1. This is mainly about Options menu. Do you agree with it?

/* FIXME: Space should toggle toggleable menu item but not remove the menu
   so you can toggle the next one without entering the menu again.  */


2. Some GUI programs use ESC to get rid of the whole menu, some use it to
   get rid of the last pane of sub menus. What should we do. I have chosen
   the first one, because Left can be used to get the second one. OK?

/* FIXME: Should ESC close one level of menu structure or the complete menu?  */


3. I see that many of developers think that `yes' is the correct answer to
this question ;-)

/* FIXME: Should F10 enter to menu?  Which one?  File?  */


4.  This issue is pure FIXME, I hope that Jan will do that.

/* FIXME: Grab keyboard when in menu.  */

-- 
Pavel Janík

Don't compare floating point numbers just for equality.
                  --  The Elements of Programming Style (Kernighan & Plaugher)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  7:46         ` Richard Stallman
  2002-04-22  8:55           ` Pavel Janík
@ 2002-04-22  9:28           ` Stefan Monnier
  2002-04-22 13:04             ` Ben Wing
  2002-04-23  0:24             ` Richard Stallman
  2002-04-22 11:39           ` Eli Zaretskii
  2 siblings, 2 replies; 93+ messages in thread
From: Stefan Monnier @ 2002-04-22  9:28 UTC (permalink / raw)
  Cc: Pavel, gerd, emacs-devel

>        > It might not be easy to find key bindings for it, though.
> 
>     I think it is very easy. We should use F10, and invent new variable
>     f10-should-use-tmm (this is only idea to exactly describe its meaning...)
>     defaulting to nil.
> 
> What key bindings does XEmacs use for this feature?
> Maybe we should use the same ones, if there is no disadvantage.

I think they use A-<letter> to pop down the menu whose
first letter is <letter> and then the same kind of thing to select
entries inside menus (and probably A-next and A-prior to select by
moving line-by-line).
I believe it was chosen because it's what Motif and W32 interfaces
provide (and I expect GTK to offer similar things).  It has the
disadvantage of relying on the presence of an Alt key which is not
already used as a Meta key.

This all comes from my very fuzzy memory, so I'm sure it's good
several "inaccuracies".


	Stefan

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  8:55           ` Pavel Janík
@ 2002-04-22 10:03             ` Stefan Monnier
  2002-04-22 12:59             ` Miles Bader
  2002-04-22 19:47             ` Jan D.
  2 siblings, 0 replies; 93+ messages in thread
From: Stefan Monnier @ 2002-04-22 10:03 UTC (permalink / raw)
  Cc: emacs-devel

>    > What key bindings does XEmacs use for this feature?
>    > Maybe we should use the same ones, if there is no disadvantage.
> 
> To say the truth, I could not find the key that pop-up the menu in
> XEmacs :-( I can not download newer version of XEmacs, because I'm at home
> these days (illness, slow and rather expensive Internet connection). I've
> tested xemacs-21.5.5.tar.gz but I did not find it :-( Can anyone help me
> with this?

It might be disabled by default or maybe it's just that you can't
generate the proper event because your Alt key is mapped to Meta
(either by xmodmap or by Emacs).

> /* FIXME: Space should toggle toggleable menu item but not remove the menu
>    so you can toggle the next one without entering the menu again.  */

Sounds good to me.

> 2. Some GUI programs use ESC to get rid of the whole menu, some use it to
>    get rid of the last pane of sub menus. What should we do. I have chosen
>    the first one, because Left can be used to get the second one. OK?
> 
> /* FIXME: Should ESC close one level of menu structure or the complete menu?  */

I think your current choice is the right one.


	Stefan

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  7:46         ` Richard Stallman
  2002-04-22  8:55           ` Pavel Janík
  2002-04-22  9:28           ` Stefan Monnier
@ 2002-04-22 11:39           ` Eli Zaretskii
  2002-04-23 19:31             ` Richard Stallman
  2 siblings, 1 reply; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-22 11:39 UTC (permalink / raw)
  Cc: Pavel, gerd, emacs-devel


On Mon, 22 Apr 2002, Richard Stallman wrote:

> Another menu feature that users have asked for is a way to display
> proper-looking menus on ttys.  The idea is that they would look as
> much like X toolkit menus as is possible on a tty.

Some code could be lifted from msdos.c, which already does something like 
that.  It's been on my todo forever, but I don't think I will have time 
any time soon.

Btw, I suggest to emulate the non-toolkit version of the menu code, like 
the MS-DOS port does (look at the non-toolkit part of xmenu.c for the 
API), because it's simpler.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  8:55           ` Pavel Janík
  2002-04-22 10:03             ` Stefan Monnier
@ 2002-04-22 12:59             ` Miles Bader
  2002-04-22 17:47               ` Kim F. Storm
  2002-04-23  2:05               ` Miles Bader
  2002-04-22 19:47             ` Jan D.
  2 siblings, 2 replies; 93+ messages in thread
From: Miles Bader @ 2002-04-22 12:59 UTC (permalink / raw)
  Cc: emacs-devel

Pavel@Janik.cz (Pavel Janík) writes:
> /* FIXME: Should F10 enter to menu?  Which one?  File?  */

Since it has done that for a long time in emacs, it seems like we
should keep F10; the first menu seems like the right one

> /* FIXME: Space should toggle toggleable menu item but not remove the menu
>    so you can toggle the next one without entering the menu again.  */

Yes.  That's what Gnome does, and it seems very convenient.

> 2. Some GUI programs use ESC to get rid of the whole menu, some use it to
>    get rid of the last pane of sub menus. What should we do. I have chosen
>    the first one, because Left can be used to get the second one. OK?
>
> /* FIXME: Should ESC close one level of menu structure or the complete menu?  */

Mozilla only closes the current sub-menu, whereas Gnome seems to close
all menu panes on ESC.  Personally I think Mozilla's behavior is better
-- it's less severe, so causes less annoyance if you hit ESC
accidentally, and anway, you can easily hit ESC multiple times to get
rid of the whole menu (whereas the reverse is obviously not true!).

-Miles
-- 
.Numeric stability is probably not all that important when you're guessing.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  9:28           ` Stefan Monnier
@ 2002-04-22 13:04             ` Ben Wing
  2002-04-22 13:42               ` Pavel Janík
  2002-04-23 19:30               ` Richard Stallman
  2002-04-23  0:24             ` Richard Stallman
  1 sibling, 2 replies; 93+ messages in thread
From: Ben Wing @ 2002-04-22 13:04 UTC (permalink / raw)
  Cc: Richard Stallman, Pavel, gerd, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 2846 bytes --]



Stefan Monnier wrote:

>>       > It might not be easy to find key bindings for it, though.
>>
>>    I think it is very easy. We should use F10, and invent new variable
>>    f10-should-use-tmm (this is only idea to exactly describe its meaning...)
>>    defaulting to nil.
>>
>>What key bindings does XEmacs use for this feature?
>>Maybe we should use the same ones, if there is no disadvantage.
>>
>
>I think they use A-<letter> to pop down the menu whose
>first letter is <letter> and then the same kind of thing to select
>entries inside menus (and probably A-next and A-prior to select by
>moving line-by-line).
>I believe it was chosen because it's what Motif and W32 interfaces
>provide (and I expect GTK to offer similar things).  It has the
>disadvantage of relying on the presence of an Alt key which is not
>already used as a Meta key.
>
>This all comes from my very fuzzy memory, so I'm sure it's good
>several "inaccuracies".
>

currently, either:

-- if you have an alt key separate from meta, you can use it for menu 
accelerators.
-- otherwise, you can use the standard alt/meta key -- meta+any 
accelerator letter selects a menu, otherwise you get the regular 
behavior.  for any shadowed binding, meta+shift+letter ignores the 
accelerator and gets you the shadowed binding [or alternatively, use 
esc+letter, which also ignores the accelerator].  you can turn this on 
and off, of course, and pick what key is your accelerator.  i've 
designed our menus in such a way that there is little interference from 
losing some of the M-foo combinations -- there are generally equivalent 
arrow-key bindings, or you can just pick an item off the menu.

i program under windows, so i interfaced to the standard windows menu stuff.

btw i would really appreciate it if you guys could keep a recent version 
of xemacs around so you can run it and see, and keep compatible whenever 
possible rather than reinvent the wheel.  i constantly refer to the most 
recent gnu emacs source code when thinking about making changes [to keep 
compatibility whenever possible] and it would be really good if you guys 
could also try to keep compatible.  keep in mind that the theoretical 
eventual goal is partial or total merger of the two, and every time you 
add a feature that's incompatible with xemacs you make that goal harder 
to achieve.

i know you can't look at the source code directly due to self-imposed 
restrictions, but

[a] you can run the program and use the help system,
[b] you can [maybe?] look at the changelogs,
[c] you should arrange one of you who doesn't work on the gnu emacs code 
as official "xemacs code reader" when such issues need to be resolved.

>
>
>
>	Stefan
>
>
>_______________________________________________
>Emacs-devel mailing list
>Emacs-devel@gnu.org
>http://mail.gnu.org/mailman/listinfo/emacs-devel
>


[-- Attachment #2: Type: text/html, Size: 3573 bytes --]

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 13:04             ` Ben Wing
@ 2002-04-22 13:42               ` Pavel Janík
  2002-04-23  9:13                 ` Ben Wing
                                   ` (2 more replies)
  2002-04-23 19:30               ` Richard Stallman
  1 sibling, 3 replies; 93+ messages in thread
From: Pavel Janík @ 2002-04-22 13:42 UTC (permalink / raw)
  Cc: Stefan Monnier, Richard Stallman, gerd, emacs-devel

   From: Ben Wing <ben@666.com>
   Date: Mon, 22 Apr 2002 06:04:52 -0700

Ben, Stefan,

   > >>    I think it is very easy. We should use F10, and invent new variable
   > >>    f10-should-use-tmm (this is only idea to exactly describe its meaning...)
   > >>    defaulting to nil.

[...]

   > -- if you have an alt key separate from meta, you can use it for menu
   > accelerators.

I was not talking about accelerators. I know how to use them in XEmacs. But
I do not know if there is a key binding to pop-up the first menu in the
menubar. We would like Emacs to be compatible if XEmacs if it has that
feature. I do not use XEmacs so I'm asking: does XEmacs have that feature?
If so, what is the keybinding?

As Eli said: keyboard controlling menu is useless if you do not have a way
to enter menubar. Accelerators is one way, but I'm looking for the second
one right now.

[...]

Due to this misunderstanding I ignored the rest of your e-mail.
-- 
Pavel Janík

/*
 * For moronic filesystems that do not allow holes in file.
 * We may have to extend the file.
 */
                  -- 2.4.0-test2 fs/buffer.c

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 12:59             ` Miles Bader
@ 2002-04-22 17:47               ` Kim F. Storm
  2002-04-23  2:05               ` Miles Bader
  1 sibling, 0 replies; 93+ messages in thread
From: Kim F. Storm @ 2002-04-22 17:47 UTC (permalink / raw)
  Cc: Pavel Janík, emacs-devel

Miles Bader <miles@gnu.org> writes:

> Pavel@Janik.cz (Pavel Janík) writes:
> > /* FIXME: Should F10 enter to menu?  Which one?  File?  */
> 
> Since it has done that for a long time in emacs, it seems like we
> should keep F10; the first menu seems like the right one
> 
> > /* FIXME: Space should toggle toggleable menu item but not remove the menu
> >    so you can toggle the next one without entering the menu again.  */
> 
> Yes.  That's what Gnome does, and it seems very convenient.
> 
> > 2. Some GUI programs use ESC to get rid of the whole menu, some use it to
> >    get rid of the last pane of sub menus. What should we do. I have chosen
> >    the first one, because Left can be used to get the second one. OK?
> >
> > /* FIXME: Should ESC close one level of menu structure or the complete menu?  */
> 
> Mozilla only closes the current sub-menu, whereas Gnome seems to close
> all menu panes on ESC.  Personally I think Mozilla's behavior is better
> -- it's less severe, so causes less annoyance if you hit ESC
> accidentally, and anway, you can easily hit ESC multiple times to get
> rid of the whole menu (whereas the reverse is obviously not true!).

In any case, C-g should close all menu panes...

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  8:55           ` Pavel Janík
  2002-04-22 10:03             ` Stefan Monnier
  2002-04-22 12:59             ` Miles Bader
@ 2002-04-22 19:47             ` Jan D.
  2002-04-23 19:30               ` Richard Stallman
  2 siblings, 1 reply; 93+ messages in thread
From: Jan D. @ 2002-04-22 19:47 UTC (permalink / raw)
  Cc: emacs-devel

Pavel Janík wrote:
> To say the truth, I could not find the key that pop-up the menu in
> XEmacs :-( I can not download newer version of XEmacs, because I'm at home
> these days (illness, slow and rather expensive Internet connection). I've
> tested xemacs-21.5.5.tar.gz but I did not find it :-( Can anyone help me
> with this?

I tried, but could not find any key.  F10 is certainly not it.

> 
> ;-) I have already wrote that to xlwmenu.c as FIXME:
> 
> /* FIXME: Should F10 enter to menu?  Which one?  File?  */

Motif marks/activates the first menu (File) but doesn't open it.  You 
have to do arrow down to open it.  That way one can navigate the top 
level menus (File, Edit and so on) without opening them.


> 1. This is mainly about Options menu. Do you agree with it?
> 
> /* FIXME: Space should toggle toggleable menu item but not remove the menu
>    so you can toggle the next one without entering the menu again.  */
> 

Agree.

> 
> 2. Some GUI programs use ESC to get rid of the whole menu, some use it to
>    get rid of the last pane of sub menus. What should we do. I have chosen
>    the first one, because Left can be used to get the second one. OK?
> 
> /* FIXME: Should ESC close one level of menu structure or the complete menu?  */

Gtk: Closes whole structure.
KDE + Motif: Closes one level.

I prefer one level.

> 
> 3. I see that many of developers think that `yes' is the correct answer to
> this question ;-)
> 
> /* FIXME: Should F10 enter to menu?  Which one?  File?  */

See above.

> 
> 
> 4.  This issue is pure FIXME, I hope that Jan will do that.
> 


This is in CVS now.  You might want to recompile and test again, some 
behaviour may have changed.  For example, previously all Alt-key where 
swallowed by the window manager on my system, now they are passed to the 
menu.

	Jan D.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22  9:28           ` Stefan Monnier
  2002-04-22 13:04             ` Ben Wing
@ 2002-04-23  0:24             ` Richard Stallman
  1 sibling, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-23  0:24 UTC (permalink / raw)
  Cc: Pavel, gerd, emacs-devel

    I think they use A-<letter> to pop down the menu whose
    first letter is <letter> and then the same kind of thing to select
    entries inside menus (and probably A-next and A-prior to select by
    moving line-by-line).

We may as well support it too.

    I believe it was chosen because it's what Motif and W32 interfaces
    provide (and I expect GTK to offer similar things).  It has the
    disadvantage of relying on the presence of an Alt key which is not
    already used as a Meta key.

Yes, that is a disadvantage--but the worst that can happen if you
don't have such an Alt key is that this feature is not available to
you.  So we may as well support this feature.  But we should have F10
also.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 12:59             ` Miles Bader
  2002-04-22 17:47               ` Kim F. Storm
@ 2002-04-23  2:05               ` Miles Bader
  1 sibling, 0 replies; 93+ messages in thread
From: Miles Bader @ 2002-04-23  2:05 UTC (permalink / raw)
  Cc: emacs-devel

FWIW, I just looked at a mswindows box (kind of old, though, w95), and
it does:

   * F10 highlights the first menu-bar label, but doesn't drop any menu
     down until you hit down-arrow

   * ESC closes only the current submenu -- in fact, if you hit ESC
     while only a top-level menu-pane is displayed, it pops down that
     pane and keeps the menu-bar label highlighted

   * SPC doesn't seem to do anything (you have to use RET to toggle
     something in a menu, and that makes the menu go away)

[yeah, OK, MS isn't exactly famous for its UI acumen, but it's certainly
good for familiarity-to-the-masses]

-Miles
-- 
"I distrust a research person who is always obviously busy on a task."
   --Robert Frosch, VP, GM Research

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 13:42               ` Pavel Janík
@ 2002-04-23  9:13                 ` Ben Wing
  2002-04-23  9:35                   ` Miles Bader
  2002-04-23  9:32                 ` Ben Wing
       [not found]                 ` <3CC52A2F.6010704@666.com>
  2 siblings, 1 reply; 93+ messages in thread
From: Ben Wing @ 2002-04-23  9:13 UTC (permalink / raw)
  Cc: Stefan Monnier, Richard Stallman, gerd, emacs-devel



Pavel Janík wrote:

>   From: Ben Wing <ben@666.com>
>   Date: Mon, 22 Apr 2002 06:04:52 -0700
>
>Ben, Stefan,
>
>   > >>    I think it is very easy. We should use F10, and invent new variable
>   > >>    f10-should-use-tmm (this is only idea to exactly describe its meaning...)
>   > >>    defaulting to nil.
>
>[...]
>
>   > -- if you have an alt key separate from meta, you can use it for menu
>   > accelerators.
>
>I was not talking about accelerators. I know how to use them in XEmacs.
>
But the person I was responding to thought that you need an alt key 
separate from meta -- as you imply by where you cut my response.  the 
fact is that things work quite well when you have only a meta key.  e.g. 
meta+letter is an accelerator only when such a menu exists; otherwise, 
you get the regular binding -- and even then you can retrieve the 
shadowed binding with shift+meta+letter.  are you sure you knew about 
all that?

in any case, under Windows the standard behavior of pressing and 
releasing the Alt key [i.e. meta] without hitting any other key 
traverses to the menu, although there's a var to turn it off.  there is 
a command, lucid-menus-only, misleadingly called (not my creation) 
'accelerate-menu' that traverses to the menu, but there doesn't seem to 
be a standard binding.

f10 is the obvious binding, to be Motif/Windows compatible.
shift-f10 would bring up a popup menu, equivalent to clicking the right 
mouse button.



> But
>I do not know if there is a key binding to pop-up the first menu in the
>menubar. We would like Emacs to be compatible if XEmacs if it has that
>feature. I do not use XEmacs so I'm asking: does XEmacs have that feature?
>If so, what is the keybinding?
>
>As Eli said: keyboard controlling menu is useless if you do not have a way
>to enter menubar. Accelerators is one way, but I'm looking for the second
>one right now.
>
>[...]
>
>Due to this misunderstanding I ignored the rest of your e-mail.
>

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 13:42               ` Pavel Janík
  2002-04-23  9:13                 ` Ben Wing
@ 2002-04-23  9:32                 ` Ben Wing
       [not found]                 ` <3CC52A2F.6010704@666.com>
  2 siblings, 0 replies; 93+ messages in thread
From: Ben Wing @ 2002-04-23  9:32 UTC (permalink / raw)
  Cc: Stefan Monnier, Richard Stallman, gerd, emacs-devel,
	xemacs-design

i'm sorry about the tone of that last message, it may have come across 
badly.

what i meant to say [more nicely!] was that although we certainly should 
provide f10 as a way to get to the menus, most of the world uses 
accelerators as the standard way of getting to menus, and with 
sufficiently clever design [a la what i've done in xemacs], you can use 
accelerators with only one meta key and without interfering with the 
other uses of meta.  it's much better to make accelerators work 
seamlessly than do them in a clumsy fashion and *require* that f10 be 
used to get to the menus -- it should be a backup.

btw i checked it out on windows, and most programs do indeed let you get 
to the menus using f10 as well as accelerators.  the one exception is 
VC++ -- the program that we should probably take as our first point of 
reference when updating the GUI.  VC++ uses f10 for "next instruction" 
[single step but not into function calls].  my own personal bindings use 
F10 as Undo, and I use the accelerators [with only one META key, i.e. 
accelerators and M-foo are multiplexed] all the time in XEmacs, and i 
have very few problems with it.

ben

Pavel Janík wrote:

>   From: Ben Wing <ben@666.com>
>   Date: Mon, 22 Apr 2002 06:04:52 -0700
>
>Ben, Stefan,
>
>   > >>    I think it is very easy. We should use F10, and invent new variable
>   > >>    f10-should-use-tmm (this is only idea to exactly describe its meaning...)
>   > >>    defaulting to nil.
>
>[...]
>
>   > -- if you have an alt key separate from meta, you can use it for menu
>   > accelerators.
>
>I was not talking about accelerators. I know how to use them in XEmacs. But
>I do not know if there is a key binding to pop-up the first menu in the
>menubar. We would like Emacs to be compatible if XEmacs if it has that
>feature. I do not use XEmacs so I'm asking: does XEmacs have that feature?
>If so, what is the keybinding?
>
>As Eli said: keyboard controlling menu is useless if you do not have a way
>to enter menubar. Accelerators is one way, but I'm looking for the second
>one right now.
>
>[...]
>
>Due to this misunderstanding I ignored the rest of your e-mail.
>

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23  9:13                 ` Ben Wing
@ 2002-04-23  9:35                   ` Miles Bader
  2002-04-23 11:08                     ` Eli Zaretskii
                                       ` (2 more replies)
  0 siblings, 3 replies; 93+ messages in thread
From: Miles Bader @ 2002-04-23  9:35 UTC (permalink / raw)
  Cc: Pavel Janík, Stefan Monnier, Richard Stallman, gerd,
	emacs-devel

Ben Wing <ben@666.com> writes:
> the fact is that things work quite well when you have only a meta key.
> e.g. meta+letter is an accelerator only when such a menu exists;
> otherwise, you get the regular binding -- and even then you can
> retrieve the shadowed binding with shift+meta+letter.

Do people really like this?  It sounds astonishly annoying to have
random meta keys stolen by the menus, especially since emacs has many
useful and common commands on M-letter keys.  E.g., doesn't the `File'
menu steal `M-f', the `Buffers' menu `M-b', etc.?

I am skeptical ...

-Miles
-- 
.Numeric stability is probably not all that important when you're guessing.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found]                 ` <3CC52A2F.6010704@666.com>
@ 2002-04-23  9:51                   ` Hrvoje Niksic
  2002-04-23 11:20                   ` Stephen J. Turnbull
  1 sibling, 0 replies; 93+ messages in thread
From: Hrvoje Niksic @ 2002-04-23  9:51 UTC (permalink / raw)
  Cc: Pavel Janík, Stefan Monnier, Richard Stallman, gerd,
	emacs-devel, xemacs-design

Ben Wing <ben@666.com> writes:

> what i meant to say [more nicely!] was that although we certainly
> should provide f10 as a way to get to the menus,

(global-set-key 'f10 'accelerate-menu)

> Pavel Janík wrote:
[...]
>>I was not talking about accelerators. I know how to use them in
>>XEmacs. But I do not know if there is a key binding to pop-up the
>>first menu in the menubar. We would like Emacs to be compatible if
>>XEmacs if it has that feature. I do not use XEmacs so I'm asking:
>>does XEmacs have that feature?  If so, what is the keybinding?

Yes; it's not bound to a key by default.  The name of the command is
`accelerate-menu', so if you wish to be compatible, use that.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 11:08                     ` Eli Zaretskii
@ 2002-04-23 10:22                       ` Gerd Moellmann
  2002-04-23 11:25                         ` Eli Zaretskii
  2002-04-23 11:42                       ` Simon Josefsson
  2002-04-24 10:42                       ` Ben Wing
  2 siblings, 1 reply; 93+ messages in thread
From: Gerd Moellmann @ 2002-04-23 10:22 UTC (permalink / raw)
  Cc: Miles Bader, Ben Wing, Pavel Janík, Stefan Monnier,
	emacs-devel

Eli Zaretskii <eliz@is.elta.co.il> writes:

> I'd suggest to find a modifier other than Meta, and use that instead.  
> Something like Super or Hyper, for example

I think it would be good if the use of Alt etc. for menus would be
optional, should they be used.  I have all sorts of bindings on such
keys.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23  9:35                   ` Miles Bader
@ 2002-04-23 11:08                     ` Eli Zaretskii
  2002-04-23 10:22                       ` Gerd Moellmann
                                         ` (2 more replies)
  2002-04-23 12:06                     ` Kim F. Storm
  2002-04-24 15:37                     ` Kai Großjohann
  2 siblings, 3 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-23 11:08 UTC (permalink / raw)
  Cc: Ben Wing, Pavel Janík, Stefan Monnier, gerd, emacs-devel


On 23 Apr 2002, Miles Bader wrote:

> Ben Wing <ben@666.com> writes:
> > the fact is that things work quite well when you have only a meta key.
> > e.g. meta+letter is an accelerator only when such a menu exists;
> > otherwise, you get the regular binding -- and even then you can
> > retrieve the shadowed binding with shift+meta+letter.
> 
> Do people really like this?

I don't.  One ``feature'' that particularly annoys me is that, as Ben 
described, pressing Alt alone and then releasing it activates the menu 
bar.  So if I press Alt and then change my mind, I need to remember to 
type ESC or something similar before I can type text again.  That's a 
real dumper on fast typing.

> It sounds astonishly annoying to have
> random meta keys stolen by the menus, especially since emacs has many
> useful and common commands on M-letter keys.  E.g., doesn't the `File'
> menu steal `M-f', the `Buffers' menu `M-b', etc.?

I think such a mode is inappropriate for Emacs because our menu bar can 
change dynamically as a function of what you type.  So in Emacs, what 
keys will be stolen is not entirely predictable, which makes this even a 
worse idea, IMHO.

I'd suggest to find a modifier other than Meta, and use that instead.  
Something like Super or Hyper, for example; we support them on Windows as 
well.  For tty's, we could have some prefix key instead.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found]                 ` <3CC52A2F.6010704@666.com>
  2002-04-23  9:51                   ` Hrvoje Niksic
@ 2002-04-23 11:20                   ` Stephen J. Turnbull
  1 sibling, 0 replies; 93+ messages in thread
From: Stephen J. Turnbull @ 2002-04-23 11:20 UTC (permalink / raw)
  Cc: Pavel Jan~k, Stefan Monnier, Richard Stallman, gerd, emacs-devel,
	xemacs-design

>>>>> "Ben" == Ben Wing <ben@666.com> writes:

    Ben> my own personal bindings use F10 as Undo, and I use the
    Ben> accelerators [with only one META key, i.e. accelerators and
    Ben> M-foo are multiplexed] all the time in XEmacs, and i have
    Ben> very few problems with it.

While I hated having the M- bindings stolen randomly at first (ie,
multiplexed META key), Ben did quite a good job on the XEmacs menus
(which are also dynamic, and because of the package system, even more
out of our control than Emacs's are out of yours).  So I got used to
it rather quickly.

It might be too much effort to implement "as an option for those who
want it", but I actually would want it available now that I've tried it.

One data point.

-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
              Don't ask how you can "do" free software business;
              ask what your business can "do for" free software.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 10:22                       ` Gerd Moellmann
@ 2002-04-23 11:25                         ` Eli Zaretskii
  0 siblings, 0 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-23 11:25 UTC (permalink / raw)
  Cc: Miles Bader, Ben Wing, Pavel Janík, Stefan Monnier,
	emacs-devel


On 23 Apr 2002, Gerd Moellmann wrote:

> Eli Zaretskii <eliz@is.elta.co.il> writes:
> 
> > I'd suggest to find a modifier other than Meta, and use that instead.  
> > Something like Super or Hyper, for example
> 
> I think it would be good if the use of Alt etc. for menus would be
> optional, should they be used.

That goes without saying.  Sorry I didn't mention that explicitly.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 11:08                     ` Eli Zaretskii
  2002-04-23 10:22                       ` Gerd Moellmann
@ 2002-04-23 11:42                       ` Simon Josefsson
  2002-04-24 17:55                         ` Richard Stallman
  2002-04-24 10:42                       ` Ben Wing
  2 siblings, 1 reply; 93+ messages in thread
From: Simon Josefsson @ 2002-04-23 11:42 UTC (permalink / raw)
  Cc: Miles Bader, Ben Wing, Pavel Janík, Stefan Monnier, gerd,
	emacs-devel

On Tue, 23 Apr 2002, Eli Zaretskii wrote:

> > Ben Wing <ben@666.com> writes:
> > > the fact is that things work quite well when you have only a meta key.
> > > e.g. meta+letter is an accelerator only when such a menu exists;
> > > otherwise, you get the regular binding -- and even then you can
> > > retrieve the shadowed binding with shift+meta+letter.
> > 
> > Do people really like this?
> 
> I don't.  One ``feature'' that particularly annoys me is that, as Ben 
> described, pressing Alt alone and then releasing it activates the menu 
> bar.  So if I press Alt and then change my mind, I need to remember to 
> type ESC or something similar before I can type text again.  That's a 
> real dumper on fast typing.

In theory I agree, but after using KDE apps some time I find my self
pressing ESC without thinking if I happen to press Alt and change my mind.  
KDE and Windows behave the same, but GNOME does not, so it is not easy to 
chose.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 12:06                     ` Kim F. Storm
@ 2002-04-23 11:44                       ` Simon Josefsson
  2002-04-24 10:56                         ` Ben Wing
       [not found]                         ` <3CC68F57.4060901@666.com>
  2002-04-23 11:53                       ` Robert J. Chassell
                                         ` (2 subsequent siblings)
  3 siblings, 2 replies; 93+ messages in thread
From: Simon Josefsson @ 2002-04-23 11:44 UTC (permalink / raw)
  Cc: Miles Bader, Ben Wing, Pavel Janík, Stefan Monnier,
	Richard Stallman, gerd, emacs-devel

On 23 Apr 2002, Kim F. Storm wrote:

> On the other hand, I think many new users would expect that M-f would
> open the File menu, and since he doesn't already know that M-f runs
> forward-word, he'll probably never be bothered with having to use S-M-f
> to invoke that command.

People will probably only expect accelerators to work if, e.g., the F in 
File was underlined.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 12:06                     ` Kim F. Storm
  2002-04-23 11:44                       ` Simon Josefsson
@ 2002-04-23 11:53                       ` Robert J. Chassell
  2002-04-23 14:11                       ` Stefan Monnier
  2002-04-24 10:44                       ` Ben Wing
  3 siblings, 0 replies; 93+ messages in thread
From: Robert J. Chassell @ 2002-04-23 11:53 UTC (permalink / raw)
  Cc: miles, ben, Pavel, monnier+gnu/emacs, rms, gerd, emacs-devel

   > Do people really like this?  It sounds astonishly annoying to have
   > random meta keys stolen by the menus .... I am skeptical ...

So am I.

   On the other hand, I think many new users would expect that M-f would
   open the File menu, 

I doubt that.  I suspect that these new users don't know about the
Meta key.  More likely they expect to use a key that is labeled Alt.

Please distinguish among commands, keybinding, and the labels on the keys
which are bound.

For example, I have two keys labeled with an Alt, both of which I have
bound to Meta.  I might be persuaded to rebind one of the keys labeled
with an Alt to Hyper -- then I could tell a newbie fried that the key
labeled Alt on the right hand side of the keyboard handles menus.

For testing, please provide alternative xmodmap commands I can put
into a ~/.xinitrc file that define what keys come with various labels,
along with commands to evaluate in a test Emacs session itself.

And please provide *alternative* maps, both for .xmodmap and Emacs,
so we can try different proposals, to see which should be a default
for `emacs -q', on a console, on a console on a slow connection, in a
X windowing system, and so on.

-- 
    Robert J. Chassell                  bob@rattlesnake.com
    Rattlesnake Enterprises             http://www.rattlesnake.com

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23  9:35                   ` Miles Bader
  2002-04-23 11:08                     ` Eli Zaretskii
@ 2002-04-23 12:06                     ` Kim F. Storm
  2002-04-23 11:44                       ` Simon Josefsson
                                         ` (3 more replies)
  2002-04-24 15:37                     ` Kai Großjohann
  2 siblings, 4 replies; 93+ messages in thread
From: Kim F. Storm @ 2002-04-23 12:06 UTC (permalink / raw)
  Cc: Ben Wing, Pavel Janík, Stefan Monnier, Richard Stallman,
	gerd, emacs-devel

Miles Bader <miles@lsi.nec.co.jp> writes:

> Ben Wing <ben@666.com> writes:
> > the fact is that things work quite well when you have only a meta key.
> > e.g. meta+letter is an accelerator only when such a menu exists;
> > otherwise, you get the regular binding -- and even then you can
> > retrieve the shadowed binding with shift+meta+letter.
> 
> Do people really like this?  It sounds astonishly annoying to have
> random meta keys stolen by the menus, especially since emacs has many
> useful and common commands on M-letter keys.  E.g., doesn't the `File'
> menu steal `M-f', the `Buffers' menu `M-b', etc.?
> 
> I am skeptical ...

So am I.

I rarely use the menus, so I definitely don't want any accellerator
keys to steal *ANY* of the M- key bindings which are hardwired into my
spine after +15 years of emacs usage...

On the other hand, I think many new users would expect that M-f would
open the File menu, and since he doesn't already know that M-f runs
forward-word, he'll probably never be bothered with having to use S-M-f
to invoke that command.

Personally, I wouldn't mind if I could use S-M-f to open the File menu
- but if I'm in message mode, I'd much rather prefer if it opened the
Field menu...

So, what's the right approach here?

Well, at least make the accellerator modifier(s) configurable!!!

Default could be 'meta or 'alt or '(shift meta) or nil -- depending
on whether we want to help new users (annoying old-timers), or vice versa.


BTW, I think most of this logic be implemented in lisp if we
just had two built-in functions like

  (menu-bar-item-matching-p key) -> returns t if menu starting with KEY exists
  (open-menu-bar-item-matching key) -> opens that menu.

Then, in a menu-accell minor mode, we could have code and bindings like

  (defun menu-accell-check-item ()
    (menu-bar-item-matching-p (this-command-key))

  (defun menu-accell-open-item ()
    (interactive)
    (open-menu-bar-item-matching (this-command-key)))

  (defcustom menu-accell-modifiers '(meta))

  ... for KEY in ?a to ?z do ...
  (define-key menu-accell-map 
    (vector (append menu-accell-modifiers (list key)))  ;; eg M-f
    '(menu-item "accell" menu-accell-open-item 
                :filter menu-accell-check-item))


If we want another accellerator modifier, simply clear the menu-accell-map
and rebuild it using the new accellerator modifier.  This can be done
automatically in the :set action of menu-accell-modifiers.

Just an idea...

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 12:06                     ` Kim F. Storm
  2002-04-23 11:44                       ` Simon Josefsson
  2002-04-23 11:53                       ` Robert J. Chassell
@ 2002-04-23 14:11                       ` Stefan Monnier
  2002-04-24 10:44                       ` Ben Wing
  3 siblings, 0 replies; 93+ messages in thread
From: Stefan Monnier @ 2002-04-23 14:11 UTC (permalink / raw)
  Cc: Miles Bader, Ben Wing, Pavel Janík, Stefan Monnier,
	Richard Stallman, gerd, emacs-devel

> BTW, I think most of this logic be implemented in lisp if we
> just had two built-in functions like
> 
>   (menu-bar-item-matching-p key) -> returns t if menu starting with KEY exists
>   (open-menu-bar-item-matching key) -> opens that menu.
> 
> Then, in a menu-accell minor mode, we could have code and bindings like
> 
>   (defun menu-accell-check-item ()
>     (menu-bar-item-matching-p (this-command-key))
> 
>   (defun menu-accell-open-item ()
>     (interactive)
>     (open-menu-bar-item-matching (this-command-key)))
> 
>   (defcustom menu-accell-modifiers '(meta))
> 
>   ... for KEY in ?a to ?z do ...
>   (define-key menu-accell-map
>     (vector (append menu-accell-modifiers (list key)))  ;; eg M-f
>     '(menu-item "accell" menu-accell-open-item
>                 :filter menu-accell-check-item))

Looks perfect.  Could be just a minor mode.


	Stefan

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 19:47             ` Jan D.
@ 2002-04-23 19:30               ` Richard Stallman
  0 siblings, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-23 19:30 UTC (permalink / raw)
  Cc: Pavel, emacs-devel

    Motif marks/activates the first menu (File) but doesn't open it.  You 
    have to do arrow down to open it.  That way one can navigate the top 
    level menus (File, Edit and so on) without opening them.

I can't think of a better interface than that.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 13:04             ` Ben Wing
  2002-04-22 13:42               ` Pavel Janík
@ 2002-04-23 19:30               ` Richard Stallman
  2002-04-23 20:22                 ` Karl Eichwalder
  1 sibling, 1 reply; 93+ messages in thread
From: Richard Stallman @ 2002-04-23 19:30 UTC (permalink / raw)


    -- otherwise, you can use the standard alt/meta key -- meta+any 
    accelerator letter selects a menu, otherwise you get the regular 
    behavior.  for any shadowed binding, meta+shift+letter ignores the 
    accelerator and gets you the shadowed binding [or alternatively, use 
    esc+letter, which also ignores the accelerator].

I don't think that accelerators should ever shadow standard Emacs keys
such as M-f, M-e, M-b, M-t, M-h, and M-m by default in any X
configuration.  We have to find some other default bindings.  Perhaps
M-Shift- characters should be the default menu accelerators.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-22 11:39           ` Eli Zaretskii
@ 2002-04-23 19:31             ` Richard Stallman
  2002-04-23 20:13               ` Pavel Janík
  0 siblings, 1 reply; 93+ messages in thread
From: Richard Stallman @ 2002-04-23 19:31 UTC (permalink / raw)
  Cc: Pavel, gerd, emacs-devel

    Some code could be lifted from msdos.c, which already does something like 
    that.  It's been on my todo forever, but I don't think I will have time 
    any time soon.

This means the job is smaller than I thought it was.  Pavel, would you
be interested?

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 19:31             ` Richard Stallman
@ 2002-04-23 20:13               ` Pavel Janík
  2002-04-25  6:05                 ` Richard Stallman
  0 siblings, 1 reply; 93+ messages in thread
From: Pavel Janík @ 2002-04-23 20:13 UTC (permalink / raw)
  Cc: eliz, gerd, emacs-devel

   From: Richard Stallman <rms@gnu.org>
   Date: Tue, 23 Apr 2002 13:31:05 -0600 (MDT)

   >     Some code could be lifted from msdos.c, which already does something like 
   >     that.  It's been on my todo forever, but I don't think I will have time 
   >     any time soon.
   > 
   > This means the job is smaller than I thought it was.  Pavel, would you
   > be interested?

I do not use Emacs with -nw nor in the text terminal, so I'd prefer not to
do this and concentrate my work on more mainstream things. I have a great
opportunity to work with people who are new to Emacs and who see problems
I (and I think more people here :-() do not see. And I can change that
right now.
-- 
Pavel Janík

So the solution is not build ACPI as a module, because it shouldn't have
allowed you to do so in the first place :)
                  -- Jeff Garzik in linux-kernel

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 19:30               ` Richard Stallman
@ 2002-04-23 20:22                 ` Karl Eichwalder
  2002-04-24  4:12                   ` Miles Bader
  2002-04-25  6:07                   ` Richard Stallman
  0 siblings, 2 replies; 93+ messages in thread
From: Karl Eichwalder @ 2002-04-23 20:22 UTC (permalink / raw)
  Cc: monnier+gnu/emacs, Pavel, gerd, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> I don't think that accelerators should ever shadow standard Emacs keys
> such as M-f, M-e, M-b, M-t, M-h, and M-m by default in any X
> configuration.

Agreed in general.

> [...] Perhaps M-Shift- characters should be the default menu
> accelerators.

No.  No user will press two keys plus a letter to get a menu ;) To solve
the question you have to take a decision first: do you want to provide
menus for new users (new but already familiar with some sort of GUI) or
for old users quite familiar with Emacs?

New users will be more interested in possibility to access Menus with
the key labeled Alt+letter and old Emacs users will not stand it to
get lost of M-f etc. (they normally use the key labeled Alt as Meta).

As long as the systems stays configurable (as sawfish, the window
manager) I don't see a special problem; for Emacs 21.x you must not
change the defaults, for Emacs 22.x things are different.

-- 
ke@suse.de (work) / keichwa@gmx.net (home):              |
http://www.suse.de/~ke/                                  |      ,__o
Free Translation Project:                                |    _-\_<,
http://www.iro.umontreal.ca/contrib/po/HTML/             |   (*)/'(*)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 20:22                 ` Karl Eichwalder
@ 2002-04-24  4:12                   ` Miles Bader
  2002-04-25  6:07                   ` Richard Stallman
  1 sibling, 0 replies; 93+ messages in thread
From: Miles Bader @ 2002-04-24  4:12 UTC (permalink / raw)
  Cc: rms, monnier+gnu/emacs, Pavel, gerd, emacs-devel

Karl Eichwalder <ke@gnu.franken.de> writes:
> > [...] Perhaps M-Shift- characters should be the default menu
> > accelerators.
> 
> No.  No user will press two keys plus a letter to get a menu ;)

I would...

-Miles
-- 
Yo mama's so fat when she gets on an elevator it HAS to go down.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 11:08                     ` Eli Zaretskii
  2002-04-23 10:22                       ` Gerd Moellmann
  2002-04-23 11:42                       ` Simon Josefsson
@ 2002-04-24 10:42                       ` Ben Wing
  2002-04-24 11:27                         ` Simon Josefsson
                                           ` (2 more replies)
  2 siblings, 3 replies; 93+ messages in thread
From: Ben Wing @ 2002-04-24 10:42 UTC (permalink / raw)
  Cc: Miles Bader, Pavel Janík, Stefan Monnier, gerd, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 2194 bytes --]



Eli Zaretskii wrote:

>On 23 Apr 2002, Miles Bader wrote:
>
>>Ben Wing <ben@666.com> writes:
>>
>>>the fact is that things work quite well when you have only a meta key.
>>>e.g. meta+letter is an accelerator only when such a menu exists;
>>>otherwise, you get the regular binding -- and even then you can
>>>retrieve the shadowed binding with shift+meta+letter.
>>>
>>Do people really like this?
>>
>
>I don't.  One ``feature'' that particularly annoys me is that, as Ben 
>described, pressing Alt alone and then releasing it activates the menu 
>bar.  So if I press Alt and then change my mind, I need to remember to 
>type ESC or something similar before I can type text again.  That's a 
>real dumper on fast typing.
>

this is only on for windows, and you can turn this off, of course.

>
>
>>It sounds astonishly annoying to have
>>random meta keys stolen by the menus, especially since emacs has many
>>useful and common commands on M-letter keys.  E.g., doesn't the `File'
>>menu steal `M-f', the `Buffers' menu `M-b', etc.?
>>
>
>I think such a mode is inappropriate for Emacs because our menu bar can 
>change dynamically as a function of what you type.  So in Emacs, what 
>keys will be stolen is not entirely predictable, which makes this even a 
>worse idea, IMHO.
>
>I'd suggest to find a modifier other than Meta, and use that instead.  
>Something like Super or Hyper, for example; we support them on Windows as 
>well.  For tty's, we could have some prefix key instead.
>

you guys are so X-centric in your thinking.  there is no other key in 
Windows, really.  people *always* expect the Alt key to traverse to 
menus, and it's no exception here.

as i said before [but it got purposely chopped off], most of the 
shadowed keys are available elsewhere -- M-f is also Ctrl-right, M-b is 
Ctrl-left, M-v [the View menu] is Next, etc.  Furthermore, those 
arrow/cursor-key bindings are more intuitive, and more standard, than 
the old-style Emacs bindings.  i designed things intentionally so they 
most all work like this.

>
>
>_______________________________________________
>Emacs-devel mailing list
>Emacs-devel@gnu.org
>http://mail.gnu.org/mailman/listinfo/emacs-devel
>


[-- Attachment #2: Type: text/html, Size: 3375 bytes --]

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 12:06                     ` Kim F. Storm
                                         ` (2 preceding siblings ...)
  2002-04-23 14:11                       ` Stefan Monnier
@ 2002-04-24 10:44                       ` Ben Wing
  3 siblings, 0 replies; 93+ messages in thread
From: Ben Wing @ 2002-04-24 10:44 UTC (permalink / raw)
  Cc: Miles Bader, Pavel Janík, Stefan Monnier, Richard Stallman,
	gerd, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 2837 bytes --]



Kim F. Storm wrote:

>Miles Bader <miles@lsi.nec.co.jp> writes:
>
>>Ben Wing <ben@666.com> writes:
>>
>>>the fact is that things work quite well when you have only a meta key.
>>>e.g. meta+letter is an accelerator only when such a menu exists;
>>>otherwise, you get the regular binding -- and even then you can
>>>retrieve the shadowed binding with shift+meta+letter.
>>>
>>Do people really like this?  It sounds astonishly annoying to have
>>random meta keys stolen by the menus, especially since emacs has many
>>useful and common commands on M-letter keys.  E.g., doesn't the `File'
>>menu steal `M-f', the `Buffers' menu `M-b', etc.?
>>
>>I am skeptical ...
>>
>
>So am I.
>
>I rarely use the menus, so I definitely don't want any accellerator
>keys to steal *ANY* of the M- key bindings which are hardwired into my
>spine after +15 years of emacs usage...
>
>On the other hand, I think many new users would expect that M-f would
>open the File menu, and since he doesn't already know that M-f runs
>forward-word, he'll probably never be bothered with having to use S-M-f
>to invoke that command.
>
>Personally, I wouldn't mind if I could use S-M-f to open the File menu
>- but if I'm in message mode, I'd much rather prefer if it opened the
>Field menu...
>
>So, what's the right approach here?
>
>Well, at least make the accellerator modifier(s) configurable!!!
>
>Default could be 'meta or 'alt or '(shift meta) or nil -- depending
>on whether we want to help new users (annoying old-timers), or vice versa.
>

the general principle i'm acting on is that we should cater to what's 
standard and to the new users; old timers know how to customize and turn 
off annoying features, new users don't know how to get back the features 
they want, and will probably think the program is just broken.

>
>
>
>BTW, I think most of this logic be implemented in lisp if we
>just had two built-in functions like
>
>  (menu-bar-item-matching-p key) -> returns t if menu starting with KEY exists
>  (open-menu-bar-item-matching key) -> opens that menu.
>
>Then, in a menu-accell minor mode, we could have code and bindings like
>
>  (defun menu-accell-check-item ()
>    (menu-bar-item-matching-p (this-command-key))
>
>  (defun menu-accell-open-item ()
>    (interactive)
>    (open-menu-bar-item-matching (this-command-key)))
>
>  (defcustom menu-accell-modifiers '(meta))
>
>  ... for KEY in ?a to ?z do ...
>  (define-key menu-accell-map 
>    (vector (append menu-accell-modifiers (list key)))  ;; eg M-f
>    '(menu-item "accell" menu-accell-open-item 
>                :filter menu-accell-check-item))
>
>
>If we want another accellerator modifier, simply clear the menu-accell-map
>and rebuild it using the new accellerator modifier.  This can be done
>automatically in the :set action of menu-accell-modifiers.
>
>Just an idea...
>


[-- Attachment #2: Type: text/html, Size: 3618 bytes --]

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 11:44                       ` Simon Josefsson
@ 2002-04-24 10:56                         ` Ben Wing
       [not found]                         ` <3CC68F57.4060901@666.com>
  1 sibling, 0 replies; 93+ messages in thread
From: Ben Wing @ 2002-04-24 10:56 UTC (permalink / raw)
  Cc: Kim F. Storm, Miles Bader, Pavel Janík, Stefan Monnier,
	Richard Stallman, gerd, emacs-devel, xemacs-design

[-- Attachment #1: Type: text/plain, Size: 1642 bytes --]



Simon Josefsson wrote:

>On 23 Apr 2002, Kim F. Storm wrote:
>
>>On the other hand, I think many new users would expect that M-f would
>>open the File menu, and since he doesn't already know that M-f runs
>>forward-word, he'll probably never be bothered with having to use S-M-f
>>to invoke that command.
>>
>
>People will probably only expect accelerators to work if, e.g., the F in 
>File was underlined.
>

In XEmacs, they are.


In an earlier message, which was ignored, I suggested that you guys 
actually run XEmacs to see how it works.  I'm not sure why there's so 
much resistance to doing this -- I can't really see how this would 
infringe on RMS's directive not to look directly at XEmacs code.

I really want to see greater compatibility between GNU Emacs and XEmacs. 
 But that can't happen unless each side explores on its own what the 
other side has [btw I personally spend a fair amount of time looking at 
GNU Emacs source code to try to maintain compatibility].  It's not 
enough to ask a developer on the other side or wait for them to tell you 
what's out there; also, it uses up time on their part.

I would like to see general agreement that we will try to work more 
closely in keeping new interfaces compatible whenever possible.  Every 
new interface that's incompatible moves us farther away from the 
ultimate goal of unifying the interfaces, which I think most of us agree 
on (I certainly do).

If people have problems getting XEmacs to compile or run on their 
platform, or they have problems with the pre-built binaries that exist 
for many platforms, I'll be glad to help out in getting them working.


ben

[-- Attachment #2: Type: text/html, Size: 2038 bytes --]

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found]                         ` <3CC68F57.4060901@666.com>
@ 2002-04-24 11:15                           ` Simon Josefsson
  2002-04-24 12:52                           ` Stefan Monnier
  2002-04-24 15:43                           ` Eli Zaretskii
  2 siblings, 0 replies; 93+ messages in thread
From: Simon Josefsson @ 2002-04-24 11:15 UTC (permalink / raw)
  Cc: emacs-devel, xemacs-design

[ To/Cc reduced to not spam the entire emacs world ]

On Wed, 24 Apr 2002, Ben Wing wrote:

> >People will probably only expect accelerators to work if, e.g., the F in 
> >File was underlined.
> 
> In XEmacs, they are.

Yes, but menu accelerators doesn't seem to work by default in XEmacs
[undex unix].  IMHO the F should only be underlined if it is possible to
press Alt-F to open the File menu.  Having a underlined F in the menu and
Alt-F doing something different (as in XEmacs) is worse than not having a
underlined F or menu accelerators at all (as in Emacs) IMHO.

Using M-S-f to open the File menu seems like a bad idea, as it is a step
=away= from modern UI behaviour.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 10:42                       ` Ben Wing
@ 2002-04-24 11:27                         ` Simon Josefsson
  2002-04-24 15:54                           ` Eli Zaretskii
  2002-04-24 14:40                         ` Pavel Janík
  2002-04-24 15:31                         ` Eli Zaretskii
  2 siblings, 1 reply; 93+ messages in thread
From: Simon Josefsson @ 2002-04-24 11:27 UTC (permalink / raw)
  Cc: gerd, emacs-devel

On Wed, 24 Apr 2002, Ben Wing wrote:

> >I think such a mode is inappropriate for Emacs because our menu bar can 
> >change dynamically as a function of what you type.  So in Emacs, what 
> >keys will be stolen is not entirely predictable, which makes this even a 
> >worse idea, IMHO.

FWIW, most bigger UI applications behave like this.  The menu change 
depending on what you're doing, and the menu accelerator bindings change 
with it.

> you guys are so X-centric in your thinking.  there is no other key in 
> Windows, really.  people *always* expect the Alt key to traverse to 
> menus, and it's no exception here.

I agree completely.  It seems the current practice is to use Alt for meta
operations such as menubar, window movement etc, and Ctrl for application
specific operations.

Going through the M-* bindings, I only find I'm normally only using M-q,
M-w, M-u, M-d, M-l, M-c, and M-x.  M-w is just because emacs cut'n'paste
behaviour is weird compared to most other applications.  I could easily
re-learn M-q, M-u, M-l and M-c.  M-x could probably also be changed,
altough perhaps it is going too far.  M-d cannot be changed though IMHO,
but here I think emacs actually is in agreement with many other
applications.  Just my $.2 worth unscientific study.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found]                         ` <3CC68F57.4060901@666.com>
  2002-04-24 11:15                           ` Simon Josefsson
@ 2002-04-24 12:52                           ` Stefan Monnier
  2002-04-24 15:43                           ` Eli Zaretskii
  2 siblings, 0 replies; 93+ messages in thread
From: Stefan Monnier @ 2002-04-24 12:52 UTC (permalink / raw)
  Cc: Simon Josefsson, Kim F. Storm, Miles Bader, Pavel Janík,
	Stefan Monnier, Richard Stallman, gerd, emacs-devel,
	xemacs-design

> In an earlier message, which was ignored, I suggested that you guys
> actually run XEmacs to see how it works.  I'm not sure why there's so
> much resistance to doing this -- I can't really see how this would
> infringe on RMS's directive not to look directly at XEmacs code.

I have XEmacs installed here (I usually also have the CVS checked out,
although not right now because it was victim of a "disk full emergency"
a couple weeks back).
I suspect I'm not the only one.

> I would like to see general agreement that we will try to work more
> closely in keeping new interfaces compatible whenever possible.  Every
> new interface that's incompatible moves us farther away from the
> ultimate goal of unifying the interfaces, which I think most of us agree
> on (I certainly do).

Agreed here,


	Stefan

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found] <Pine.LNX.4.44.0204241307080.32219-100000@yxa.extundo.com>
@ 2002-04-24 14:36 ` Stephen J. Turnbull
  2002-04-24 15:33   ` Kai Großjohann
       [not found]   ` <vaf662hjelc.fsf@INBOX.auto.emacs.devel.tok.lucy.cs.uni-dortmund.de>
  0 siblings, 2 replies; 93+ messages in thread
From: Stephen J. Turnbull @ 2002-04-24 14:36 UTC (permalink / raw)
  Cc: Ben Wing, emacs-devel, xemacs-design

>>>>> "Simon" == Simon Josefsson <jas@extundo.com> writes:

    Simon> Yes, but menu accelerators doesn't seem to work by default
    Simon> in XEmacs [undex unix].

They don't; you have to explicitly enable them (on a one-shot basis)
with `accelerate-menu' or (permanently) by setting the
`menu-accelerator-enabled' variable.  The option was part of the
design; defaulting to off was equal parts backwards compatibility
stubbornness on my part, and my horror at having M-f turned into File
Menu when I first tried the accelerators.

    Simon> IMHO the F should only be underlined if it is possible to
    Simon> press Alt-F to open the File menu.

A detail.  Important, but relatively easy to describe and fix.

    Simon> Using M-S-f to open the File menu seems like a bad idea, as
    Simon> it is a step =away= from modern UI behaviour.

That depends.  In my case, it's a step =toward= it, as I want M-f to
mean forward-word.  I will only use the accelerators if the
traditional bindings are still available.  If I have both Alt and Meta
keys, I'll use A-f to get the file menu, and M-f to move.  If I don't,
I'll arrange that the key engraved Alt generates the Meta keysym, and
use M-S-f for the accelerator.

I'd be willing to bet that "newbies" would learn this _very_ fast, as
they'll find it much easier to remember "M-S- accelerates the menu"
compared to the output of M-x wallpaper.  If you want to get oldtimers
to accept accelerators at all, they had better not interfere with
muscle memory.  So this seems like a reasonable compromise.

I'm not clear whether I actually _like_ M-S-f as a normal way to do
it.  But I think it's less of a defect than you seem to think.  There
are much uglier things in the 21.4 implementation IMHO (such as the
way Alt o t ESC ESC ESC generates an ESC keystroke, and the way ESC h
gives me the Help Menu and not `mark-paragraph').

-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
              Don't ask how you can "do" free software business;
              ask what your business can "do for" free software.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 10:42                       ` Ben Wing
  2002-04-24 11:27                         ` Simon Josefsson
@ 2002-04-24 14:40                         ` Pavel Janík
  2002-04-24 15:31                         ` Eli Zaretskii
  2 siblings, 0 replies; 93+ messages in thread
From: Pavel Janík @ 2002-04-24 14:40 UTC (permalink / raw)
  Cc: Eli Zaretskii, Miles Bader, Stefan Monnier, gerd, emacs-devel

   From: Ben Wing <ben@666.com>
   Date: Wed, 24 Apr 2002 03:42:44 -0700

   > you guys are so X-centric in your thinking.  there is no other key in
   > Windows, really.  people *always* expect the Alt key to traverse to menus,
   > and it's no exception here.

I agree here. People really expect Alt key (ie. Emacs' Meta) to pop-up the
menu.

   > as i said before [but it got purposely chopped off], most of the shadowed
   > keys are available elsewhere -- M-f is also Ctrl-right, M-b is Ctrl-left,
   > M-v [the View menu] is Next, etc.  Furthermore, those arrow/cursor-key
   > bindings are more intuitive, and more standard, than the old-style Emacs
   > bindings.

What is standard? How do you move backwards by words in bash? I use
M-b. I use the same in Emacs. It is standard for me. Sorry.

I think it will be very hard to tell what should be done here. New users
expect current Meta key to be the accelerator modifier. Old time users
expect current Meta key to be used as the binding for most used
operations. I do not use accelerators in any application so far, so I have
nothing more to say.
-- 
Pavel Janík

Say what you mean, simply and directly.
                  --  The Elements of Programming Style (Kernighan & Plaugher)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 10:42                       ` Ben Wing
  2002-04-24 11:27                         ` Simon Josefsson
  2002-04-24 14:40                         ` Pavel Janík
@ 2002-04-24 15:31                         ` Eli Zaretskii
  2002-04-25  6:06                           ` Richard Stallman
  2 siblings, 1 reply; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-24 15:31 UTC (permalink / raw)
  Cc: emacs-devel

> Date: Wed, 24 Apr 2002 03:42:44 -0700
> From: Ben Wing <ben@666.com>
> >
> >I'd suggest to find a modifier other than Meta, and use that instead.  
> >Something like Super or Hyper, for example; we support them on Windows as 
> >well.  For tty's, we could have some prefix key instead.
> 
> you guys are so X-centric in your thinking.

Actually, large part of my Emacs usage is on Windows, and I almost never use Emacs on X, even when I do work on Posix platforms.

> there is no other key in Windows, really.

I see 3: left "Windows", right "Windows", and "Apps".  They are
supported in Emacs (you can associate Emacs modifiers with them).

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 14:36 ` Stephen J. Turnbull
@ 2002-04-24 15:33   ` Kai Großjohann
       [not found]   ` <vaf662hjelc.fsf@INBOX.auto.emacs.devel.tok.lucy.cs.uni-dortmund.de>
  1 sibling, 0 replies; 93+ messages in thread
From: Kai Großjohann @ 2002-04-24 15:33 UTC (permalink / raw)
  Cc: Simon Josefsson, Ben Wing, emacs-devel, xemacs-design

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

>>>>>> "Simon" == Simon Josefsson <jas@extundo.com> writes:
>
>     Simon> Yes, but menu accelerators doesn't seem to work by default
>     Simon> in XEmacs [undex unix].
>
> They don't; you have to explicitly enable them (on a one-shot basis)
> with `accelerate-menu' or (permanently) by setting the
> `menu-accelerator-enabled' variable.

It appears to me that accelerate-menu is not really necessary.  One
could make it so that F10 (or whatever) selects the menu bar, and
then hitting an underlined key will select that menu.  So people can
press F10 f to get the file menu.

With your suggestion, they have to press F11 M-f (if accelerate-menu
is bound to F11).

Am I misunderstanding something?

kai
-- 
Silence is foo!

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23  9:35                   ` Miles Bader
  2002-04-23 11:08                     ` Eli Zaretskii
  2002-04-23 12:06                     ` Kim F. Storm
@ 2002-04-24 15:37                     ` Kai Großjohann
  2002-04-25  6:06                       ` Richard Stallman
  2 siblings, 1 reply; 93+ messages in thread
From: Kai Großjohann @ 2002-04-24 15:37 UTC (permalink / raw)
  Cc: Ben Wing, Pavel Janík, Stefan Monnier, Richard Stallman,
	gerd, emacs-devel

Miles Bader <miles@lsi.nec.co.jp> writes:

> Ben Wing <ben@666.com> writes:
>> the fact is that things work quite well when you have only a meta key.
>> e.g. meta+letter is an accelerator only when such a menu exists;
>> otherwise, you get the regular binding -- and even then you can
>> retrieve the shadowed binding with shift+meta+letter.
>
> Do people really like this?  It sounds astonishly annoying to have
> random meta keys stolen by the menus, especially since emacs has many
> useful and common commands on M-letter keys.  E.g., doesn't the `File'
> menu steal `M-f', the `Buffers' menu `M-b', etc.?

I'd have to try it to be sure, but I also think I would hate for M-f
to invoke the menu.

But a useful option might be to make it so that M-f invokes
forward-word where as <meta> f invokes the file menu.  (With this I
mean that the user presses and then releases the Meta or Alt key or
whatever this key to the left of the space bar is labeled.)  With
suitable highlighting of the menubar after doing <meta>, this might
even be intuitive enough so that people aren't surprised that they
have to hit ESC after pressing and releasing <meta> erroneously.

Thoughts?

kai
-- 
Silence is foo!

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found]                         ` <3CC68F57.4060901@666.com>
  2002-04-24 11:15                           ` Simon Josefsson
  2002-04-24 12:52                           ` Stefan Monnier
@ 2002-04-24 15:43                           ` Eli Zaretskii
  2 siblings, 0 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-24 15:43 UTC (permalink / raw)
  Cc: gerd, emacs-devel, xemacs-design

> Date: Wed, 24 Apr 2002 03:56:23 -0700
> From: Ben Wing <ben@666.com>
> 
> In an earlier message, which was ignored, I suggested that you guys 
> actually run XEmacs to see how it works.  I'm not sure why there's so 
> much resistance to doing this -- I can't really see how this would 
> infringe on RMS's directive not to look directly at XEmacs code.

Ben, please don't assume that your messages are ignored just because
no one replied.  I, for one, am reading each of your messages very
carefully and take anything you say into consideration.  We are all
busy people, so acking each message to which we agree is not something
we can afford.  At least I can't; I don't want to speak for others,
but I suspect many have to cope with a similar lack of time.

I also don't think there's any resistance to run XEmacs.  Stefan
already told you that he does, and so do I.  No doubt there are
others.

> I really want to see greater compatibility between GNU Emacs and XEmacs. 
>  But that can't happen unless each side explores on its own what the 
> other side has

Sure.  But it's also reasonable to ask the expert(s) instead, as an
expert could provide a more accurate information faster.  For example,
if someone--on any of the two teams--is interested in the details of
somee code I wrote, I wouldn't mind if they asked me.

> I would like to see general agreement that we will try to work more 
> closely in keeping new interfaces compatible whenever possible.  Every 
> new interface that's incompatible moves us farther away from the 
> ultimate goal of unifying the interfaces, which I think most of us agree 
> on (I certainly do).

I agree completely.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 11:27                         ` Simon Josefsson
@ 2002-04-24 15:54                           ` Eli Zaretskii
  0 siblings, 0 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-24 15:54 UTC (permalink / raw)
  Cc: ben, gerd, emacs-devel

> From: Simon Josefsson <jas@extundo.com>
> Date: Wed, 24 Apr 2002 13:27:38 +0200 (CEST)
> 
> Going through the M-* bindings, I only find I'm normally only using M-q,
> M-w, M-u, M-d, M-l, M-c, and M-x.

I use M-f, M-b, M-z, M-m, M-y, M-a, M-e, M-k, M-v, and M-i, in
addition to those you mentioned.  (Funny, I didn't realize how many
of these I use until making this list just now.)

> M-w is just because emacs cut'n'paste
> behaviour is weird compared to most other applications.  I could easily
> re-learn M-q, M-u, M-l and M-c.  M-x could probably also be changed,
> altough perhaps it is going too far.

I think most or all of these are too central to editing, for us to be
able to usurp them and tell users to relearn.  Massive changes in the
docs (tutorial and the manual, for starters) is also not something I
look forward for.

I understand and support the need for presenting a familiar UI, but I
think in this case, the price is too high.  The S-M-* suggestion sounds
much better on balance, IMHO.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found]   ` <vaf662hjelc.fsf@INBOX.auto.emacs.devel.tok.lucy.cs.uni-dortmund.de>
@ 2002-04-24 16:23     ` Stephen J. Turnbull
  2002-04-24 18:15       ` Kai Großjohann
  2002-04-25  2:23     ` Hrvoje Niksic
  1 sibling, 1 reply; 93+ messages in thread
From: Stephen J. Turnbull @ 2002-04-24 16:23 UTC (permalink / raw)
  Cc: Ben Wing, emacs-devel, xemacs-design

>>>>> "Kai" == Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> writes:

    Kai> It appears to me that accelerate-menu is not really
    Kai> necessary.  One could make it so that F10 (or whatever)
    Kai> selects the menu bar, and then hitting an underlined key will
    Kai> select that menu.  So people can press F10 f to get the file
    Kai> menu.

This is exactly what accelerate-menu does, with the added feature that
the File menu (ie, the first menubar item) is preselected so that you
can type either f or RET to drop it down.  (This is true for submenus
as well.)

    Kai> With your suggestion, they have to press F11 M-f (if
    Kai> accelerate-menu is bound to F11).

No.  It works as you would expect.  F11 activates, single letters and
digits (also arrow keys and RET) navigate thereafter, no meta-chords
needed.

    Kai> Am I misunderstanding something?

Only that I didn't say anything further about the accelerate-menu
interface beyond it being one-shot; all the rest referred to the
"permanent" meta-chord interface.  That wasn't at all clear from the
way I wrote it.  A presentation flaw, rather than your misunderstanding.


-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
              Don't ask how you can "do" free software business;
              ask what your business can "do for" free software.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 11:42                       ` Simon Josefsson
@ 2002-04-24 17:55                         ` Richard Stallman
  2002-04-24 18:29                           ` Simon Josefsson
  2002-04-24 18:37                           ` Gerd Moellmann
  0 siblings, 2 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-24 17:55 UTC (permalink / raw)
  Cc: eliz, miles, ben, Pavel, monnier+gnu/emacs, gerd, emacs-devel

    In theory I agree, but after using KDE apps some time I find my self
    pressing ESC without thinking if I happen to press Alt and change my mind.  
    KDE and Windows behave the same, but GNOME does not, so it is not easy to 
    chose.

GNOME is the GNU desktop.  In working on GNU packages such as Emacs,
we should choose consistency with GNOME, so as to make the GNU system
as a whole maximally coherent.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 16:23     ` Stephen J. Turnbull
@ 2002-04-24 18:15       ` Kai Großjohann
  0 siblings, 0 replies; 93+ messages in thread
From: Kai Großjohann @ 2002-04-24 18:15 UTC (permalink / raw)
  Cc: Ben Wing, emacs-devel, xemacs-design

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

>>>>>> "Kai" == Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> writes:
>
>     Kai> With your suggestion, they have to press F11 M-f (if
>     Kai> accelerate-menu is bound to F11).
>
> No.  It works as you would expect.  F11 activates, single letters and
> digits (also arrow keys and RET) navigate thereafter, no meta-chords
> needed.

Ah.  I think I understand now.  Actually, accelerate-menu is just
what I was suggesting to put on F10.

Sorry for the line noise.

kai
-- 
Silence is foo!

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 17:55                         ` Richard Stallman
@ 2002-04-24 18:29                           ` Simon Josefsson
  2002-04-26  3:17                             ` Richard Stallman
  2002-04-24 18:37                           ` Gerd Moellmann
  1 sibling, 1 reply; 93+ messages in thread
From: Simon Josefsson @ 2002-04-24 18:29 UTC (permalink / raw)
  Cc: eliz, miles, ben, Pavel, monnier+gnu/emacs, gerd, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     In theory I agree, but after using KDE apps some time I find my self
>     pressing ESC without thinking if I happen to press Alt and change my mind.  
>     KDE and Windows behave the same, but GNOME does not, so it is not easy to 
>     chose.
>
> GNOME is the GNU desktop.  In working on GNU packages such as Emacs,
> we should choose consistency with GNOME, so as to make the GNU system
> as a whole maximally coherent.

Emacs could be compatible with the system it is currently running
under as well.  If running under Windows or KDE, it could use the
behaviour used in Windows and KDE.  Then emacs could blend into
"alien" systems better.  I think this is already the case for many
things in the Windows Emacs port (e.g., the Emacs Windows port is
consistent with how Windows work, not how GNOME works).

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 17:55                         ` Richard Stallman
  2002-04-24 18:29                           ` Simon Josefsson
@ 2002-04-24 18:37                           ` Gerd Moellmann
  2002-04-26  3:20                             ` Richard Stallman
  1 sibling, 1 reply; 93+ messages in thread
From: Gerd Moellmann @ 2002-04-24 18:37 UTC (permalink / raw)
  Cc: jas, eliz, miles, ben, Pavel, monnier+gnu/emacs, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     In theory I agree, but after using KDE apps some time I find my self
>     pressing ESC without thinking if I happen to press Alt and change my mind.  
>     KDE and Windows behave the same, but GNOME does not, so it is not easy to 
>     chose.
> 
> GNOME is the GNU desktop.  In working on GNU packages such as Emacs,
> we should choose consistency with GNOME, so as to make the GNU system
> as a whole maximally coherent.

I guess if GNOME has themes, as I think it has, a seemless integration
even only from the looks will be pretty difficult, unless using the
GNOME libs for the UI in Emacs.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
       [not found]   ` <vaf662hjelc.fsf@INBOX.auto.emacs.devel.tok.lucy.cs.uni-dortmund.de>
  2002-04-24 16:23     ` Stephen J. Turnbull
@ 2002-04-25  2:23     ` Hrvoje Niksic
  1 sibling, 0 replies; 93+ messages in thread
From: Hrvoje Niksic @ 2002-04-25  2:23 UTC (permalink / raw)
  Cc: Stephen J. Turnbull, Simon Josefsson, Ben Wing, emacs-devel,
	xemacs-design

Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann) writes:

> It appears to me that accelerate-menu is not really necessary.  One
> could make it so that F10 (or whatever) selects the menu bar, and
> then hitting an underlined key will select that menu.

Huh?  That's exactly what accelerate-menu does, provided you bind it
to f10.  Just try it.

> With your suggestion, they have to press F11 M-f (if accelerate-menu
> is bound to F11).

That's not true.  Again, try it.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 20:13               ` Pavel Janík
@ 2002-04-25  6:05                 ` Richard Stallman
  2002-04-25 11:05                   ` Eli Zaretskii
  0 siblings, 1 reply; 93+ messages in thread
From: Richard Stallman @ 2002-04-25  6:05 UTC (permalink / raw)
  Cc: eliz, gerd, emacs-devel

       >     Some code could be lifted from msdos.c, which already does something like 
       >     that.  It's been on my todo forever, but I don't think I will have time 
       >     any time soon.
       > 
       > This means the job is smaller than I thought it was.  Pavel, would you
       > be interested?

    I do not use Emacs with -nw nor in the text terminal, so I'd prefer not to
    do this and concentrate my work on more mainstream things.

Would someone else like to adapt this code for all character terminals?

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 15:37                     ` Kai Großjohann
@ 2002-04-25  6:06                       ` Richard Stallman
  2002-04-25  8:05                         ` Stephen J. Turnbull
  2002-04-25 11:08                         ` Eli Zaretskii
  0 siblings, 2 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-25  6:06 UTC (permalink / raw)
  Cc: miles, ben, Pavel, monnier+gnu/emacs, gerd, emacs-devel

    But a useful option might be to make it so that M-f invokes
    forward-word where as <meta> f invokes the file menu.  (With this I
    mean that the user presses and then releases the Meta or Alt key or
    whatever this key to the left of the space bar is labeled.)

That could be weird, but it might be ok.
It is much better than stealing the M-f command.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 15:31                         ` Eli Zaretskii
@ 2002-04-25  6:06                           ` Richard Stallman
  0 siblings, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-25  6:06 UTC (permalink / raw)
  Cc: ben, emacs-devel

    > you guys are so X-centric in your thinking.

We are GNU-centric.  The primary purpose of every GNU package,
including Emacs, is to make the GNU system better.  (That's why its
full name is GNU Emacs.)  We support many other platforms also, but
GNU is the most important.

Working with X is very important for us because the GNU system uses X
as its window system.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-23 20:22                 ` Karl Eichwalder
  2002-04-24  4:12                   ` Miles Bader
@ 2002-04-25  6:07                   ` Richard Stallman
  2002-04-25  7:21                     ` Karl Eichwalder
  1 sibling, 1 reply; 93+ messages in thread
From: Richard Stallman @ 2002-04-25  6:07 UTC (permalink / raw)
  Cc: monnier+gnu/emacs, Pavel, gerd, emacs-devel

    No.  No user will press two keys plus a letter to get a menu ;) To solve
    the question you have to take a decision first: do you want to provide
    menus for new users (new but already familiar with some sort of GUI) or
    for old users quite familiar with Emacs?

It is not just a matter of serving old users, but also providing the
efficient facilities of Emacs for new users who want to learn them.
Therefore, my decision is that we will not use Meta-letters as menu
accelerators in Emacs.  M-f will continue to forward-word by default.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  6:07                   ` Richard Stallman
@ 2002-04-25  7:21                     ` Karl Eichwalder
  2002-04-25  7:35                       ` Miles Bader
                                         ` (2 more replies)
  0 siblings, 3 replies; 93+ messages in thread
From: Karl Eichwalder @ 2002-04-25  7:21 UTC (permalink / raw)
  Cc: gerd, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> It is not just a matter of serving old users, but also providing the
> efficient facilities of Emacs for new users who want to learn them.

If that's tht goal (and I'm all for it), the key of a PC keyboard
labeled "Alt" pressed in combination with the underlined menu letter
must display the menu.

> Therefore, my decision is that we will not use Meta-letters as menu
> accelerators in Emacs.

That's a no win situation.

> M-f will continue to forward-word by default.

Okay, you say "by default".  Since new users don't know nothing about
forward-word = M-f, you will not hurt them.  I'd appreciate a
configuration option saying "use Alt plus underlined letter to activate
a menu or a menue entry".  Old users can set the option to "M-S".

-- 
ke@suse.de (work) / keichwa@gmx.net (home):              |
http://www.suse.de/~ke/                                  |      ,__o
Free Translation Project:                                |    _-\_<,
http://www.iro.umontreal.ca/contrib/po/HTML/             |   (*)/'(*)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  7:21                     ` Karl Eichwalder
@ 2002-04-25  7:35                       ` Miles Bader
  2002-04-25 12:00                       ` Robert J. Chassell
  2002-04-26  3:18                       ` Richard Stallman
  2 siblings, 0 replies; 93+ messages in thread
From: Miles Bader @ 2002-04-25  7:35 UTC (permalink / raw)
  Cc: rms, gerd, emacs-devel

Karl Eichwalder <ke@gnu.franken.de> writes:
> > Therefore, my decision is that we will not use Meta-letters as menu
> > accelerators in Emacs.
> 
> That's a no win situation.

Well, it's clearly a win for people who are used to using M-f to mean
forward-word.  However, even those who want menu bindings may be able to
use them if they have a key that generates `Alt' (as opposed to `Meta').
This decision simply means that emacs won't steal Meta for that use
unless otherwise told to.

-Miles
-- 
Saa, shall we dance?  (from a dance-class advertisement)

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  6:06                       ` Richard Stallman
@ 2002-04-25  8:05                         ` Stephen J. Turnbull
  2002-04-25  9:13                           ` Kai Großjohann
  2002-04-26  3:18                           ` Richard Stallman
  2002-04-25 11:08                         ` Eli Zaretskii
  1 sibling, 2 replies; 93+ messages in thread
From: Stephen J. Turnbull @ 2002-04-25  8:05 UTC (permalink / raw)
  Cc: Kai.Grossjohann, miles, ben, Pavel, monnier+gnu/emacs, gerd,
	emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

    But a useful option might be to make it so that M-f invokes
    forward-word where as <meta> f invokes the file menu.  (With this I
    mean that the user presses and then releases the Meta or Alt key or
    whatever this key to the left of the space bar is labeled.)

    rms> That could be weird, but it might be ok.
    rms> It is much better than stealing the M-f command.

But it _does_ override the M-f command for users who set
`modifier-keys-are-sticky' (in XEmacs, I guess in GNU Emacs there must
be a similar facility using the `event-apply-.*-modifier functions?
but "apropos modifier" doesn't find it).  The interaction with the
equivalent platform facility is not obvious to me, either (especially
if you have an input method active too!)

I like Ben's implementation which makes the behavior user-configurable
(although I wish it were generalizable to keyboard themes).

-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
              Don't ask how you can "do" free software business;
              ask what your business can "do for" free software.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  8:05                         ` Stephen J. Turnbull
@ 2002-04-25  9:13                           ` Kai Großjohann
  2002-04-25 10:22                             ` Stephen J. Turnbull
  2002-04-26  3:18                           ` Richard Stallman
  1 sibling, 1 reply; 93+ messages in thread
From: Kai Großjohann @ 2002-04-25  9:13 UTC (permalink / raw)
  Cc: rms, miles, ben, Pavel, monnier+gnu/emacs, gerd, emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> But it _does_ override the M-f command for users who set
> `modifier-keys-are-sticky'

The behavior I described (M-f does forward-word, but <meta> f invokes
the file menu) should be available as one option amongst several.  It
should not be the only option.

Do you agree?

I'm not sure what should be the default behavior.  This can be
discussed, of course.

kai
-- 
Silence is foo!

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  9:13                           ` Kai Großjohann
@ 2002-04-25 10:22                             ` Stephen J. Turnbull
  0 siblings, 0 replies; 93+ messages in thread
From: Stephen J. Turnbull @ 2002-04-25 10:22 UTC (permalink / raw)
  Cc: rms, miles, ben, Pavel, monnier+gnu/emacs, gerd, emacs-devel

>>>>> "Kai" == Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> writes:

    Kai> "Stephen J. Turnbull" <stephen@xemacs.org> writes:

    >> But it _does_ override the M-f command for users who set
    >> `modifier-keys-are-sticky'

    Kai> The behavior I described (M-f does forward-word, but <meta> f
    Kai> invokes the file menu) should be available as one option
    Kai> amongst several.  It should not be the only option.

    Kai> Do you agree?

Yes.

I merely want to point out that there is a class of users where the
override happens, and to suggest that we should give that group a fair
amount of weight.  They are numerically relatively small, but many are
more or less disabled, and may not have the option to chord (M-f).

I haven't looked at this issue carefully, but the current
implementation in XEmacs looks flexible enough.

-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
 My nostalgia for Icon makes me forget about any of the bad things.  I don't
have much nostalgia for Perl, so its faults I remember.  Scott Gilbert c.l.py

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  6:05                 ` Richard Stallman
@ 2002-04-25 11:05                   ` Eli Zaretskii
  0 siblings, 0 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-25 11:05 UTC (permalink / raw)
  Cc: Pavel, gerd, emacs-devel


On Thu, 25 Apr 2002, Richard Stallman wrote:

> Would someone else like to adapt this code for all character terminals?

If someone starts working on this, please be aware that I have a couple 
of messages I exchanged with Gerd discussing possible ideas for 
implementing the redisplay part of this feature.  I can dig out that 
discussion and forward it to those who work on this.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  6:06                       ` Richard Stallman
  2002-04-25  8:05                         ` Stephen J. Turnbull
@ 2002-04-25 11:08                         ` Eli Zaretskii
  1 sibling, 0 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-25 11:08 UTC (permalink / raw)
  Cc: Kai.Grossjohann, ben, gerd, emacs-devel


On Thu, 25 Apr 2002, Richard Stallman wrote:

>     But a useful option might be to make it so that M-f invokes
>     forward-word where as <meta> f invokes the file menu.  (With this I
>     mean that the user presses and then releases the Meta or Alt key or
>     whatever this key to the left of the space bar is labeled.)
> 
> That could be weird, but it might be ok.

We will need a separate solution for text terminals, though: I don't 
believe Emacs knows that Meta was pressed and released there.  In fact, 
I'm not even sure Emacs always knows that on X or MS-Windows.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  7:21                     ` Karl Eichwalder
  2002-04-25  7:35                       ` Miles Bader
@ 2002-04-25 12:00                       ` Robert J. Chassell
  2002-04-25 12:21                         ` Andreas Schwab
  2002-04-25 14:54                         ` Eli Zaretskii
  2002-04-26  3:18                       ` Richard Stallman
  2 siblings, 2 replies; 93+ messages in thread
From: Robert J. Chassell @ 2002-04-25 12:00 UTC (permalink / raw)
  Cc: rms, gerd, emacs-devel

   ... the key of a PC keyboard
   labeled "Alt" pressed in combination with the underlined menu letter
   must display the menu.

This does not make sense.  It is like saying that you should use the
left hand key labeled `Ctrl' as a control key.  

On the keyboard that I am typing on now, the left hand key labeled
`Ctrl' is to the left of the key labled `Alt', and is in a very
awkward position.  No one who uses the key in that position as a
control key will ever like Emacs.  That control key position is too
painful.

Surely, you bind keys by default so that key to the left of the key
labeled `A' becomes the control key?  (On my keyboard, that key is
labeled `Caps Lock'.)

Am I right in thinking that you explain this?  (Also, am I right in
thinking that you explain that the `Return' key may not have a
`Return' label on it, but may be labeled in some other way?)

The pop-up menu binding issue is similar:  a newbie may come from a
background in which he or she assumes that bindings are hard coded,
rather than variable.  Morover, the newbie may think that a key
labeled `Caps Lock' turns on uppercase letters, as in an old, manual
typewriter!  No one using computers has needed such a key for 25
years, yet we still see the label!


As for solutions:

I can imagine a default binding in which the key to the right of the
space bar operates a menu and the key to the left of the space bar is
meta.  On my keyboard both keys are labeled `Alt'.  

While I don't use a menu nowadays, I remember vividly how helpful a
menu was back in 1984 when I was learning.  The menu feature helped me
transition from an inefficient newbie who always moved the mouse to a
more efficient person who mostly keeps my fingers on the keyboard.  (I
learned to use the mouse only when it actually is appropriate for the
job -- usually to move to a quite different spot on the screen.  I
also learned how time consuming it is to press a key labeled `Esc'
when that key is more than a centimeter or two from the other keys I
regularly press.)


   .... I'd appreciate a configuration option saying "use Alt plus
   underlined letter to activate a menu or a menue entry". ....

As stated, this will not make sense to a novice.  Learners do not
necessarily know the difference between keybindings and key labels.
They will not know know whether you are referring to the `Alt' key
binding or to one of the keys labeled `Alt'.

The human factors issue is how to explain to a novice the difference
between keybindings and key labels, and then to explain the default
keybindings.

The beginning of the Tutorial does not explain this well; it leaves
people thinking that key labels point to key bindings:

    Emacs commands generally involve the CONTROL key (sometimes
    labeled CTRL or CTL) or the META key (sometimes labeled EDIT or
    ALT).

That is not good.  How about coming up with a better explanation?
Here is a more wordy alternative that could be used as a starting
point:

    Emacs commands generally involve the CONTROL key or the META key.

    Sometimes the CONTROL key is labeled CTRL or CTL; at other times it is
    labeled differently:  often as CAPS LOCK.  

    Almost always, the CONTROL key is the key to left of the key that
    inserts the letter A or a.  Similarly, META key may be labeled
    META; but it may be labeled EDIT or ALT or something else.
    Usually, the META key is the key immediately to the left of the
    spacebar.

-- 
    Robert J. Chassell                  bob@rattlesnake.com
    Rattlesnake Enterprises             http://www.rattlesnake.com

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 12:00                       ` Robert J. Chassell
@ 2002-04-25 12:21                         ` Andreas Schwab
  2002-04-25 13:00                           ` Robert J. Chassell
  2002-04-25 14:54                         ` Eli Zaretskii
  1 sibling, 1 reply; 93+ messages in thread
From: Andreas Schwab @ 2002-04-25 12:21 UTC (permalink / raw)
  Cc: keichwa, rms, gerd, emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

|>     Sometimes the CONTROL key is labeled CTRL or CTL; at other times it is
|>     labeled differently:  often as CAPS LOCK.  

I don't this it is ever usefull to talk about a key labeled CAPS LOCK in
this context.  Anyone who gives such a remapped keyboard to a newbee
without explaination should be shot.  It's like using a dvorak layout on
a traditional keyboard.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE GmbH, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 12:21                         ` Andreas Schwab
@ 2002-04-25 13:00                           ` Robert J. Chassell
  2002-04-25 13:11                             ` Andreas Schwab
  0 siblings, 1 reply; 93+ messages in thread
From: Robert J. Chassell @ 2002-04-25 13:00 UTC (permalink / raw)
  Cc: keichwa, rms, gerd, emacs-devel

   |> Sometimes the CONTROL key is labeled CTRL or CTL; at other times it is
   |> labeled differently:  often as CAPS LOCK.  

   I don't this it is ever usefull to talk about a key labeled CAPS LOCK in
   this context.  Anyone who gives such a remapped keyboard to a newbee
   without explaination should be shot.  It's like using a dvorak layout on
   a traditional keyboard.

What do you do?  My question is how do you explain remapping to a
novice?

I just looked at my current keyboards: all four have the key labeled
Ctrl to the far left of the spacebar.  This position is too painful
for control key use.  If a novice tries Emacs with a control key at
this position he or she will, rightfully, decide against Emacs.

-- 
    Robert J. Chassell                  bob@rattlesnake.com
    Rattlesnake Enterprises             http://www.rattlesnake.com

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 13:00                           ` Robert J. Chassell
@ 2002-04-25 13:11                             ` Andreas Schwab
  0 siblings, 0 replies; 93+ messages in thread
From: Andreas Schwab @ 2002-04-25 13:11 UTC (permalink / raw)
  Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

|> I just looked at my current keyboards: all four have the key labeled
|> Ctrl to the far left of the spacebar.  This position is too painful
|> for control key use.  If a novice tries Emacs with a control key at
|> this position he or she will, rightfully, decide against Emacs.

He should get a decent keyboard....

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE GmbH, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 14:54                         ` Eli Zaretskii
@ 2002-04-25 14:39                           ` Kai Großjohann
  2002-04-25 16:19                           ` Robert J. Chassell
  1 sibling, 0 replies; 93+ messages in thread
From: Kai Großjohann @ 2002-04-25 14:39 UTC (permalink / raw)
  Cc: Robert J. Chassell, keichwa, rms, gerd, emacs-devel

Eli Zaretskii <eliz@is.elta.co.il> writes:

> So I think we should at most add a footnote saying something about the 
> possibility of remapped keys, and that the tutorial assumes that they 
> aren't.  Anything else will cause more confusion than there might be now.

That's right.  When we're talking about novices, we should assume
that they didn't change anything, as they don't know how to do that.

If somebody has moved their ctrl key to be somewhere else, he will
understand what it means to hit the ctrl key nevertheless.

kai
-- 
Silence is foo!

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 12:00                       ` Robert J. Chassell
  2002-04-25 12:21                         ` Andreas Schwab
@ 2002-04-25 14:54                         ` Eli Zaretskii
  2002-04-25 14:39                           ` Kai Großjohann
  2002-04-25 16:19                           ` Robert J. Chassell
  1 sibling, 2 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-25 14:54 UTC (permalink / raw)
  Cc: keichwa, rms, gerd, emacs-devel


On Thu, 25 Apr 2002, Robert J. Chassell wrote:

> On the keyboard that I am typing on now, the left hand key labeled
> `Ctrl' is to the left of the key labled `Alt', and is in a very
> awkward position.  No one who uses the key in that position as a
> control key will ever like Emacs.  That control key position is too
> painful.

FWIW, I'm using such keyboards for a long time, and I don't have any 
significant problems.

> I can imagine a default binding in which the key to the right of the
> space bar operates a menu and the key to the left of the space bar is
> meta.  On my keyboard both keys are labeled `Alt'.  

Unfortunately, the right Alt key is used as AltGr on national keyboards 
(it produces non-ASCII characters and characters which have no keys).  So 
it's not free to be usurped for the menus.

But there are 3 more keys on most modern PC keyboards--one is called left 
Windows key, the other right Windows key, the third one is "Apps".  They 
usually have pictures on them.  Do you see them?  We could use one of 
them for the menu.

>     Sometimes the CONTROL key is labeled CTRL or CTL; at other times it is
>     labeled differently:  often as CAPS LOCK.  

I think users who read the tutorial (novices, I'd expect) will be 
tremendously confused by that, since most of them don't have their keys 
remapped.  I also expect that users whose keys are remapped know about 
that remapping and should have no difficulty understanding what key are 
we talking about.

So I think we should at most add a footnote saying something about the 
possibility of remapped keys, and that the tutorial assumes that they 
aren't.  Anything else will cause more confusion than there might be now.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 14:54                         ` Eli Zaretskii
  2002-04-25 14:39                           ` Kai Großjohann
@ 2002-04-25 16:19                           ` Robert J. Chassell
  2002-04-25 19:19                             ` Eli Zaretskii
  2002-04-25 20:16                             ` Jason Rumney
  1 sibling, 2 replies; 93+ messages in thread
From: Robert J. Chassell @ 2002-04-25 16:19 UTC (permalink / raw)
  Cc: keichwa, rms, gerd, emacs-devel

   > ... No one who uses the key in that position as a
   > control key will ever like Emacs.  That control key position is too
   > painful.

   FWIW, I'm using such keyboards for a long time, and I don't have any 
   significant problems.

Interesting -- you are the first person I have met who can stand to
use that keybinding for more than a few minutes.

   Unfortunately, the right Alt key is used as AltGr on national keyboards 
   (it produces non-ASCII characters and characters which have no keys).  So 
   it's not free to be usurped for the menus.

   But there are 3 more keys on most modern PC keyboards-- ...

I have seen that kind of keyboard, although many of the keyboards I
have seen are different.  What is their type?  xkeycaps lists a large
number of types, such as `104 key, wide Delete, shorter Enter'

Certainly, one of those extra keys could be used for menus.


   >     Sometimes the CONTROL key is labeled CTRL or CTL; at other times it is
   >     labeled differently:  often as CAPS LOCK.  

   I think users who read the tutorial (novices, I'd expect) will be 
   tremendously confused by that, since most of them don't have their keys 
   remapped.  

You are very unusual in being able to use a control key in the far
lower left.

My experience is based on people who tell me their keyboard has no
`Return' key, and who then have no more difficulty using a key that is
labeled `Enter' as a Return key as in using key that is labeled `Caps
Lock' as a control key.

    > So I think we should at most add a footnote saying something
    > about the possibility of remapped keys, and that the tutorial
    > assumes that they aren't.  Anything else will cause more
    > confusion than there might be now.

    That's right.  When we're talking about novices, we should assume
    that they didn't change anything, as they don't know how to do
    that.

We are talking about *setting up* a default configuration for novices.
We are choosing what keybindings we think should be their default.

Why choose a keybinding default that people dislike?  Eli is the
exception: other than him, the people I know cannot comfortably use a
control key in the far lower left.

We have to choose some default -- why choose that one?

To take another example:  Eli said that some keyboards carry left and
right `Windows' keys:  why should I bind them to shift among virtual
consoles, only some of which may be running X Windows?  (That is what
`Windows' suggests to me -- a key to shift among different windowing
sessions, the way the M-C-Fn_key binding works for me.)

On keyboards that have them, why not bind those keys in some other
way?  Eli suggested binding one of them to a menu pop up command.


-- 
    Robert J. Chassell                  bob@rattlesnake.com
    Rattlesnake Enterprises             http://www.rattlesnake.com

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 16:19                           ` Robert J. Chassell
@ 2002-04-25 19:19                             ` Eli Zaretskii
  2002-04-25 20:16                             ` Jason Rumney
  1 sibling, 0 replies; 93+ messages in thread
From: Eli Zaretskii @ 2002-04-25 19:19 UTC (permalink / raw)
  Cc: keichwa, rms, gerd, emacs-devel

> Date: Thu, 25 Apr 2002 16:19:38 +0000 (UTC)
> From: "Robert J. Chassell" <bob@rattlesnake.com>
> 
>    FWIW, I'm using such keyboards for a long time, and I don't have any 
>    significant problems.
> 
> Interesting -- you are the first person I have met who can stand to
> use that keybinding for more than a few minutes.

I simply use my pinky to press Ctrl.

I expect that most Emacs users on Windows can stand to use that
keybinding as well: key remapping is not something Windows users are
used to.  So I don't think I'm such a rare exception...

>    But there are 3 more keys on most modern PC keyboards-- ...
> 
> I have seen that kind of keyboard, although many of the keyboards I
> have seen are different.  What is their type?  xkeycaps lists a large
> number of types, such as `104 key, wide Delete, shorter Enter'

I believe these keyboards are known as ``104 key''.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 16:19                           ` Robert J. Chassell
  2002-04-25 19:19                             ` Eli Zaretskii
@ 2002-04-25 20:16                             ` Jason Rumney
  2002-04-25 23:10                               ` Robert J. Chassell
                                                 ` (2 more replies)
  1 sibling, 3 replies; 93+ messages in thread
From: Jason Rumney @ 2002-04-25 20:16 UTC (permalink / raw)
  Cc: eliz, keichwa, rms, gerd, emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

> You are very unusual in being able to use a control key in the far
> lower left.

I think you are unusual, I cannot imagine contorting my hand into the
position required to type C-z or C-x if the control key was to the
left of 'A'.  My right hand is much happier when the pinky is in a
lower position on the keyboard than the other fingers (but perhaps
you do not use the pinky for control in those circumstances).

-- 
Jason Rumney

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 20:16                             ` Jason Rumney
@ 2002-04-25 23:10                               ` Robert J. Chassell
  2002-04-25 23:21                               ` Robert J. Chassell
  2002-04-26 17:38                               ` Richard Stallman
  2 siblings, 0 replies; 93+ messages in thread
From: Robert J. Chassell @ 2002-04-25 23:10 UTC (permalink / raw)
  Cc: eliz, keichwa, rms, gerd, emacs-devel

   "Robert J. Chassell" <bob@rattlesnake.com> writes:

   > You are very unusual in being able to use a control key in the far
   > lower left.

   I think you are unusual, I cannot imagine contorting my hand into the
   position required to type C-z or C-x if the control key was to the
   left of 'A'.  

Well, that shows a difference!  I find that with my pinky over the
control key to the left of 'A', my first finger is over the `X' key.
C-x requires no change of my normal hand.

The implication for this discussion is that different people use their
keyboard differently, and it is wise to create a set of keybindings
that work for these different hands.


-- 
    Robert J. Chassell                  bob@rattlesnake.com
    Rattlesnake Enterprises             http://www.rattlesnake.com

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 20:16                             ` Jason Rumney
  2002-04-25 23:10                               ` Robert J. Chassell
@ 2002-04-25 23:21                               ` Robert J. Chassell
  2002-04-26  1:23                                 ` Miles Bader
  2002-04-26 17:38                               ` Richard Stallman
  2 siblings, 1 reply; 93+ messages in thread
From: Robert J. Chassell @ 2002-04-25 23:21 UTC (permalink / raw)
  Cc: eliz, keichwa, rms, gerd, emacs-devel

   My right hand is much happier when the pinky is in a
   lower position on the keyboard than the other fingers...

I find that my pinky is more comfortable when it is farther away than
my first finger, and this is true for both my right and left hands.  

Perhaps you are using an exceptionally wide keyboard.  My keyboards,
from the left of the `Caps Lock' key to the right of the `Enter' key,
are 28 cm (11 inches) wide.  

When I put my hands over the main keys (ASDF and JKL: on my QWERTY
keyboard), my pinkies and my first fingers sit on the keys labeled A
and F and J and : respectively -- little or no contortion is needed.
(I do not perceive any contortion at all; when I wave my hands to get
rid of any pre-set, and then put them down, the fingers form a line
and fall, if I aim them right, on the keys labeled A and F and J and :
respectively.)

I do find that I have to turn the tops of my hands outward to bring
my pinkies inwards enough to push on the far lower left and far lower
right keys -- an awkward, unpleansant, and hurtful action. 

-- 
    Robert J. Chassell                  bob@rattlesnake.com
    Rattlesnake Enterprises             http://www.rattlesnake.com

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 23:21                               ` Robert J. Chassell
@ 2002-04-26  1:23                                 ` Miles Bader
  0 siblings, 0 replies; 93+ messages in thread
From: Miles Bader @ 2002-04-26  1:23 UTC (permalink / raw)
  Cc: jasonr, eliz, keichwa, rms, gerd, emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:
> I do find that I have to turn the tops of my hands outward to bring
> my pinkies inwards enough to push on the far lower left and far lower
> right keys -- an awkward, unpleansant, and hurtful action. 

Me too; whoever moved the ctrl key down to the corner like that should
be hunted down and forced to type C-A 10,000,000 times.

[Who is responsible, anyway?  I remember when most keyboards changed to
the current layout in the 80s, people mumbled about some `european
ergonomic standard' (conducted on aliens apparently) being responsible for
this travesty but it's IBM and DEC keyboards that I remember changing
first.]

Um, sorry to be so off-topic.  The crappy state of keyboards is a sore
point with me...  Luckily at work I use a `Happy Hacking' keyboard!

-Miles
-- 
Is it true that nothing can be known?  If so how do we know this?  -Woody Allen

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 18:29                           ` Simon Josefsson
@ 2002-04-26  3:17                             ` Richard Stallman
  0 siblings, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-26  3:17 UTC (permalink / raw)
  Cc: eliz, miles, Pavel, monnier+gnu/emacs, gerd, emacs-devel

    Emacs could be compatible with the system it is currently running
    under as well.  If running under Windows or KDE, it could use the
    behaviour used in Windows and KDE.

If the people who work on Emacs on Windows want to do this,
they can do it.  I would not do it for KDE, though.  GNOME
is the GNU desktop, and we should give it our support.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  7:21                     ` Karl Eichwalder
  2002-04-25  7:35                       ` Miles Bader
  2002-04-25 12:00                       ` Robert J. Chassell
@ 2002-04-26  3:18                       ` Richard Stallman
  2 siblings, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-26  3:18 UTC (permalink / raw)
  Cc: gerd, emacs-devel

I've stated my decision so that all of us can stop spending time
arguing about a question that is already decided.  With so much mail
waiting in my mailbox, I don't want to keep spending time on this
question.  Other people on the list also probably have a lot of work
to do.  If we were to keep discussing this, our other work would not
get done.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25  8:05                         ` Stephen J. Turnbull
  2002-04-25  9:13                           ` Kai Großjohann
@ 2002-04-26  3:18                           ` Richard Stallman
  2002-04-26 11:14                             ` Gerd Moellmann
  1 sibling, 1 reply; 93+ messages in thread
From: Richard Stallman @ 2002-04-26  3:18 UTC (permalink / raw)
  Cc: Kai.Grossjohann, miles, ben, Pavel, monnier+gnu/emacs, gerd,
	emacs-devel

    But it _does_ override the M-f command for users who set
    `modifier-keys-are-sticky' 

There is no such feature in Emacs, and I never thought of it, but I
guess there is no reason not to have it if users like it.  (Would someone
like to implement that?)

However, as long as it is not the default, it doesn't pose a problem.
Once a person starts to customize, he can select this feature, or menu
accelerators, or both.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-24 18:37                           ` Gerd Moellmann
@ 2002-04-26  3:20                             ` Richard Stallman
  0 siblings, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-26  3:20 UTC (permalink / raw)
  Cc: jas, eliz, miles

    > GNOME is the GNU desktop.  In working on GNU packages such as Emacs,
    > we should choose consistency with GNOME, so as to make the GNU system
    > as a whole maximally coherent.

    I guess if GNOME has themes, as I think it has, a seemless integration
    even only from the looks will be pretty difficult, unless using the
    GNOME libs for the UI in Emacs.

That is true, which is why we want to make Emacs work with GTK.
However, that is a different question.  Making the usual appearance
of Emacs more like the default of GNOME is a good thing even if it
is not perfect.

In other words, this side issue isn't really an issue.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-26  3:18                           ` Richard Stallman
@ 2002-04-26 11:14                             ` Gerd Moellmann
  0 siblings, 0 replies; 93+ messages in thread
From: Gerd Moellmann @ 2002-04-26 11:14 UTC (permalink / raw)
  Cc: stephen, Kai.Grossjohann, miles, ben, Pavel, monnier+gnu/emacs,
	emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     But it _does_ override the M-f command for users who set
>     `modifier-keys-are-sticky' 
> 
> There is no such feature in Emacs, and I never thought of it, but I
> guess there is no reason not to have it if users like it.  (Would someone
> like to implement that?)

Such a feature is part of XFree.  Starting the XFree server with
option +accessx activates it.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-25 20:16                             ` Jason Rumney
  2002-04-25 23:10                               ` Robert J. Chassell
  2002-04-25 23:21                               ` Robert J. Chassell
@ 2002-04-26 17:38                               ` Richard Stallman
  2 siblings, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-04-26 17:38 UTC (permalink / raw)
  Cc: bob, eliz, keichwa, gerd, emacs-devel

Arguing about keyboard layouts can go on forever, but won't have any
productive results.  There is no practical decision about Emacs which
depends on it.  I suggest doing something else instead.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-04-21 11:17         ` Gerd Moellmann
  2002-04-21 13:23           ` Pavel Janík
@ 2002-05-08 14:38           ` Pavel Janík
  2002-05-08 18:16             ` Gerd Moellmann
  2002-05-10  0:29             ` Richard Stallman
  1 sibling, 2 replies; 93+ messages in thread
From: Pavel Janík @ 2002-05-08 14:38 UTC (permalink / raw)
  Cc: Richard Stallman, emacs-devel

   From: gerd.moellmann@t-online.de (Gerd Moellmann)
   Date: 21 Apr 2002 13:17:03 +0200

   > I'd check the behavior with OpenMotif and with the newest Lesstif from
   > CVS.  If it works in OpenMotif and doesn't work in Lesstif, I think
   > lesstif@hungry.com would be interested in fixing it in Lesstif.
   > 
   > Otherwise, I'm pretty sure someone will be willing to help out.  They
   > were very cooperative last time I tried.

The problem still remains. I still think it is not problem in lesstif or
openmotif. I'll try to describe the problem again with more details:

I use popup_activated_flag to dispatch KeyPress events. Its value is
changed with these two functions from xmenu.c:

static void
popup_activate_callback (widget, id, client_data)
     Widget widget;
     LWLIB_ID id;
     XtPointer client_data;
{
  popup_activated_flag = 1;
}

static void
popup_deactivate_callback (widget, id, client_data)
     Widget widget;
     LWLIB_ID id;
     XtPointer client_data;
{
  popup_activated_flag = 0;
}

The problem is, that the current code (in lwlib-Xm.c) doesn't work as
expected. When you activate menu File, you can control the menu via
keyboard (Up, Down). This works, but just after highlighting the next
top-level item in the menu-bar (ie. Edit), our variable
popup_activated_flag got zeroed.

What is the reason? It is simple. First, popup_activate_callback of the new
menu is called and thus popup_activated_flag is set to 1, but after
a moment, popup_deactivate_callback is called many times because it is
called for all menu-items in the previous (File) menu.

I do not personally use Motif code, but I think that the false value of
popup_activated_flag (it can very easy be 1 even when the popup is not
activated) is dangerous and could be the source of potential problems (I
saw that it is used to temporary disable redisplay etc).

What is the right approach to this problem?
-- 
Pavel Janík

"when" is not a word I find useful about most bios bugs. Try "if" or
"less likely that being hit on the head by an asteroid"
                  -- Alan Cox in LKML about possibility of fixing BIOS bugs

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-05-08 14:38           ` Pavel Janík
@ 2002-05-08 18:16             ` Gerd Moellmann
  2002-05-08 18:49               ` Pavel Janík
  2002-05-10  0:29             ` Richard Stallman
  1 sibling, 1 reply; 93+ messages in thread
From: Gerd Moellmann @ 2002-05-08 18:16 UTC (permalink / raw)
  Cc: Richard Stallman, emacs-devel

Pavel@janik.cz (Pavel Janík) writes:

> What is the right approach to this problem?

I think you should talk with the LessTif people.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-05-08 18:16             ` Gerd Moellmann
@ 2002-05-08 18:49               ` Pavel Janík
  0 siblings, 0 replies; 93+ messages in thread
From: Pavel Janík @ 2002-05-08 18:49 UTC (permalink / raw)
  Cc: Richard Stallman, emacs-devel

   From: gerd.moellmann@t-online.de (Gerd Moellmann)
   Date: 08 May 2002 20:16:31 +0200

   > > What is the right approach to this problem?
   > 
   > I think you should talk with the LessTif people.

I forgot to mention it, but I send that question to address Richard gave
me (toshok@hungry.com) on Thu Apr 25 19:57:35 2002.

I'll try lesstif@hungry.com and will report results here.
-- 
Pavel Janík

I wouldn't use this kernel in an atomic plant.. ;-)
                  -- Bernhard Kaindl

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-05-08 14:38           ` Pavel Janík
  2002-05-08 18:16             ` Gerd Moellmann
@ 2002-05-10  0:29             ` Richard Stallman
  2002-05-11  8:53               ` Pavel Janík
  1 sibling, 1 reply; 93+ messages in thread
From: Richard Stallman @ 2002-05-10  0:29 UTC (permalink / raw)
  Cc: gerd, emacs-devel

    What is the reason? It is simple. First, popup_activate_callback of the new
    menu is called and thus popup_activated_flag is set to 1, but after
    a moment, popup_deactivate_callback is called many times because it is
    called for all menu-items in the previous (File) menu.

That might be a bug in LessTif.  It might be correct behavior.
I don't know which.

Anyway, you can change the code to cope with it.  How about if you
change the code so it adds 1 when a menu item is activated and
substracts 1 when a menu item is deactivated?  Does it work then?

If they don't always balance out to zero, maybe it needs to keep track
of which ones have been activated and see if all of them have since
been deactivated.

If that doesn't work, then I am pretty sure it is a bug in LessTif.

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-05-10  0:29             ` Richard Stallman
@ 2002-05-11  8:53               ` Pavel Janík
  2002-05-13 14:17                 ` Richard Stallman
  0 siblings, 1 reply; 93+ messages in thread
From: Pavel Janík @ 2002-05-11  8:53 UTC (permalink / raw)
  Cc: gerd, emacs-devel

   From: Richard Stallman <rms@gnu.org>
   Date: Thu, 9 May 2002 18:29:52 -0600 (MDT)

   > That might be a bug in LessTif.  It might be correct behavior.
   > I don't know which.
   > 
   > Anyway, you can change the code to cope with it.  How about if you
   > change the code so it adds 1 when a menu item is activated and
   > substracts 1 when a menu item is deactivated?  Does it work then?

I already did this:

--- cut here ---
From:  Pavel@janik.cz (Pavel Janík)
Subject: Re: C-l while in menu?
To: Richard Stallman <rms@gnu.org>
Cc: Gerd Moellmann <gerd@gnu.org>
Cc: emacs-devel@gnu.org
Date: Sat, 20 Apr 2002 23:06:44 +0200
User-Agent: Gnus/5.090006 (Oort Gnus v0.06) Emacs/21.2.50 (i386-suse-linux-gnu)

   From: Richard Stallman <rms@gnu.org>
   Date: Sat, 20 Apr 2002 11:27:13 -0600 (MDT)

   > Can you see what is required to make this feature work with LessTif too?
   > If you can't figure out from the docs what needs doing,
   > perhaps toshok@hungry.com could give you advice.

Well, it almost works. Current CVS just process only the first key,
because popup_activated_flag is 1 only at that moment. After the first key
is processed, popup_deactivate_callback is called (many times) and that
variable is zeroed. And from now on, key in menu are no longer processed.

Good. After:

--- /home/pavel/.Emacs/Work/emacs/src/xmenu.c   Mon Jan  7 06:48:44 2002
+++ ./xmenu.c   Sat Apr 20 21:54:41 2002
@@ -1154,7 +1154,7 @@
      LWLIB_ID id;
      XtPointer client_data;
 {
-  popup_activated_flag = 1;
+  popup_activated_flag += 1;
 }
 
 /* This callback is invoked when a dialog or menu is finished being
@@ -1166,7 +1166,7 @@
      LWLIB_ID id;
      XtPointer client_data;
 {
-  popup_activated_flag = 0;
+  popup_activated_flag -= 1;
 }
 
 /* Lwlib callback called when menu items are highlighted/unhighlighted

Menu works, because popup_activated_flag is going to negative numbers very
fast... But I can no longer enter any character in the buffer, because
those keypress events are processed in menu... So I think it is not about
Lesstif knowledge, it is about how Lesstif is used in Emacs. I do not use
Lesstif so perhaps Gerd can help me. Or anyone else?
--- cut here ---

   > If they don't always balance out to zero, maybe it needs to keep track
   > of which ones have been activated and see if all of them have since
   > been deactivated.
   > 
   > If that doesn't work, then I am pretty sure it is a bug in LessTif.

I'll wait for a reply from Lesstif people.
-- 
Pavel Janík

No matter how hard you try, you can't make a baby in much less than
9 months. Trying to speed this up *might* make it slower, but it won't make
it happen any quicker.
                  -- RFC1925: The Twelve Networking Truths

^ permalink raw reply	[flat|nested] 93+ messages in thread

* Re: C-l while in menu?
  2002-05-11  8:53               ` Pavel Janík
@ 2002-05-13 14:17                 ` Richard Stallman
  0 siblings, 0 replies; 93+ messages in thread
From: Richard Stallman @ 2002-05-13 14:17 UTC (permalink / raw)
  Cc: gerd, emacs-devel

I can see one more thing you can try: keep a list of LWLIB_ID values
for which popup_activate_callback gets called, and remove them from
the list when popup_deactivate_callback gets called for them.  If
popup_deactivate_callback gets called for something that is not
active, just ignore it.  The menu is active when the list is nonempty.

This ought to work, as long as every meny gets activated
and later deactivated.

^ permalink raw reply	[flat|nested] 93+ messages in thread

end of thread, other threads:[~2002-05-13 14:17 UTC | newest]

Thread overview: 93+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <m3k7rjoamp.fsf@Janik.cz>
     [not found] ` <200204072343.g37NhIC20114@aztec.santafe.edu>
2002-04-19 18:58   ` C-l while in menu? Pavel Janík
2002-04-20 17:27     ` Richard Stallman
2002-04-20 21:06       ` Pavel Janík
2002-04-21 11:17         ` Gerd Moellmann
2002-04-21 13:23           ` Pavel Janík
2002-04-21 14:04             ` Gerd Moellmann
2002-05-08 14:38           ` Pavel Janík
2002-05-08 18:16             ` Gerd Moellmann
2002-05-08 18:49               ` Pavel Janík
2002-05-10  0:29             ` Richard Stallman
2002-05-11  8:53               ` Pavel Janík
2002-05-13 14:17                 ` Richard Stallman
2002-04-22  7:46         ` Richard Stallman
2002-04-22  8:55           ` Pavel Janík
2002-04-22 10:03             ` Stefan Monnier
2002-04-22 12:59             ` Miles Bader
2002-04-22 17:47               ` Kim F. Storm
2002-04-23  2:05               ` Miles Bader
2002-04-22 19:47             ` Jan D.
2002-04-23 19:30               ` Richard Stallman
2002-04-22  9:28           ` Stefan Monnier
2002-04-22 13:04             ` Ben Wing
2002-04-22 13:42               ` Pavel Janík
2002-04-23  9:13                 ` Ben Wing
2002-04-23  9:35                   ` Miles Bader
2002-04-23 11:08                     ` Eli Zaretskii
2002-04-23 10:22                       ` Gerd Moellmann
2002-04-23 11:25                         ` Eli Zaretskii
2002-04-23 11:42                       ` Simon Josefsson
2002-04-24 17:55                         ` Richard Stallman
2002-04-24 18:29                           ` Simon Josefsson
2002-04-26  3:17                             ` Richard Stallman
2002-04-24 18:37                           ` Gerd Moellmann
2002-04-26  3:20                             ` Richard Stallman
2002-04-24 10:42                       ` Ben Wing
2002-04-24 11:27                         ` Simon Josefsson
2002-04-24 15:54                           ` Eli Zaretskii
2002-04-24 14:40                         ` Pavel Janík
2002-04-24 15:31                         ` Eli Zaretskii
2002-04-25  6:06                           ` Richard Stallman
2002-04-23 12:06                     ` Kim F. Storm
2002-04-23 11:44                       ` Simon Josefsson
2002-04-24 10:56                         ` Ben Wing
     [not found]                         ` <3CC68F57.4060901@666.com>
2002-04-24 11:15                           ` Simon Josefsson
2002-04-24 12:52                           ` Stefan Monnier
2002-04-24 15:43                           ` Eli Zaretskii
2002-04-23 11:53                       ` Robert J. Chassell
2002-04-23 14:11                       ` Stefan Monnier
2002-04-24 10:44                       ` Ben Wing
2002-04-24 15:37                     ` Kai Großjohann
2002-04-25  6:06                       ` Richard Stallman
2002-04-25  8:05                         ` Stephen J. Turnbull
2002-04-25  9:13                           ` Kai Großjohann
2002-04-25 10:22                             ` Stephen J. Turnbull
2002-04-26  3:18                           ` Richard Stallman
2002-04-26 11:14                             ` Gerd Moellmann
2002-04-25 11:08                         ` Eli Zaretskii
2002-04-23  9:32                 ` Ben Wing
     [not found]                 ` <3CC52A2F.6010704@666.com>
2002-04-23  9:51                   ` Hrvoje Niksic
2002-04-23 11:20                   ` Stephen J. Turnbull
2002-04-23 19:30               ` Richard Stallman
2002-04-23 20:22                 ` Karl Eichwalder
2002-04-24  4:12                   ` Miles Bader
2002-04-25  6:07                   ` Richard Stallman
2002-04-25  7:21                     ` Karl Eichwalder
2002-04-25  7:35                       ` Miles Bader
2002-04-25 12:00                       ` Robert J. Chassell
2002-04-25 12:21                         ` Andreas Schwab
2002-04-25 13:00                           ` Robert J. Chassell
2002-04-25 13:11                             ` Andreas Schwab
2002-04-25 14:54                         ` Eli Zaretskii
2002-04-25 14:39                           ` Kai Großjohann
2002-04-25 16:19                           ` Robert J. Chassell
2002-04-25 19:19                             ` Eli Zaretskii
2002-04-25 20:16                             ` Jason Rumney
2002-04-25 23:10                               ` Robert J. Chassell
2002-04-25 23:21                               ` Robert J. Chassell
2002-04-26  1:23                                 ` Miles Bader
2002-04-26 17:38                               ` Richard Stallman
2002-04-26  3:18                       ` Richard Stallman
2002-04-23  0:24             ` Richard Stallman
2002-04-22 11:39           ` Eli Zaretskii
2002-04-23 19:31             ` Richard Stallman
2002-04-23 20:13               ` Pavel Janík
2002-04-25  6:05                 ` Richard Stallman
2002-04-25 11:05                   ` Eli Zaretskii
2002-04-22  1:27     ` Miles Bader
2002-04-22  6:09       ` Eli Zaretskii
     [not found] <Pine.LNX.4.44.0204241307080.32219-100000@yxa.extundo.com>
2002-04-24 14:36 ` Stephen J. Turnbull
2002-04-24 15:33   ` Kai Großjohann
     [not found]   ` <vaf662hjelc.fsf@INBOX.auto.emacs.devel.tok.lucy.cs.uni-dortmund.de>
2002-04-24 16:23     ` Stephen J. Turnbull
2002-04-24 18:15       ` Kai Großjohann
2002-04-25  2:23     ` Hrvoje Niksic

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).