From: Matthew Flatt <>
Subject: [plt-scheme] 350.4
Date: Thu, 6 Jul 2006 12:05:54 -0600

MzScheme and MrEd are now version 350.3 in the SVN repository trunk.

The changes are related to keyboard handling and menu shortcuts:

At Mon, 19 Jun 2006 10:00:26 +0200, Erich Rast wrote:
> Now there’s only two features left that I’m still desparately missing,
> both in MrEd:
> - Full support for multiple modifier key menu shortcuts (please... give
> me at least the shift key!)
> [...]

The menu-item% and checkable-menu-item% classes now accept a
`shortcut-prefix’ initialization argument. The default, which is
returned by `get-default-shortcut-prefix’, is ’(ctl) under Windows,
’(cmd) under Mac OS X, and ’(ctl) under X. For example, add ’shift to
the default to get a shift-modified shortcut: ’(shift ctl) for Windows
and X, or ’(shift cmd) for Mac OS X.

In addition, key-code symbols are allowed as menu shortcuts. For
example, you can map a menu item to ’f1 with a prefix of ’().

  Note: ’() as a prefix works only for function keys, unless you
  override the default `on-menu-key’ method. See the `on-menu-key’ docs
  for more information.

Finally, shortcut matching is more liberal for combinations that do not
include ASCII letters and digits. For example, Cmd-+ and Cmd-= match
the same thing on a U.S. keyboard, whether or not the Shift key is
pressed. If both Shift-Cmd-+ and Cmd-+ are mapped, then the former
takes precedence when the Shift key is actually pressed. If both Cmd-=
and Cmd-+ are mapped, the result depends on the platform.


 * Added `get-other-shift-key-code’ to key-event%, which (sometimes)
   returns a character or key code that would have been produced if the
   Shift key were treated opposite from the treatment for

   See the documentation for details. This functionality is needed to
   make Shift-prefixed menu shortcuts work sensibly, and it helps when
   mapping keys to characters like "+" and "=".

   A related change is that, under Mac OS X, Command cancels Option
   when translating a key event to a key code. That way, Option
   combinations work sensibly for menu shortcuts.

 * Added a "?:" modifier to keymap state strings, which lets the key
   combination match the result of `get-other-shift-key-code’ as well
   as `get-key-code’.

 * Removed `get-x-shortcut-prefix’ and `set-x-shortcut-prefix’ from

 * Changed internal handling of keyboard events. Under X, the changes
   should allow DrScheme to receive characters that it used to ignore,
   such as Greek and Cyrillic characters. Under Windows, Control-key
   combinations should be much more consistent across keyboard layouts.