Bug 46589 - [KeyBindings] Stop using native accelerators
Summary: [KeyBindings] Stop using native accelerators
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.0   Edit
Hardware: All All
: P1 normal (vote)
Target Milestone: 3.0 M6   Edit
Assignee: Douglas Pollock CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 44003 46579 46580 46588
Blocks: 31731 37934 42009 43161 43851 44354 44918 46203
  Show dependency tree
 
Reported: 2003-11-13 11:24 EST by Douglas Pollock CLA
Modified: 2003-12-17 09:37 EST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Douglas Pollock CLA 2003-11-13 11:24:25 EST
This is a bid to stop using the accelerator table to help better support 
multiple stroke key bindings, and to provide consistency across platforms, 
locales and keyboard layouts.

No accelerators would be set on menu items, though potentially backward 
support for ActionContributionItem might be permitted.
Comment 1 Dani Megert CLA 2003-11-13 18:18:52 EST
Could you give a bit more context. Which table are you referring?
Comment 2 Chris McLaren CLA 2003-11-13 18:53:47 EST
on native widget systems, menu accelerators are typically managed by a low 
level system called an 'accelerator table'. 

what doug means is that we do not want to have to put accelerators on menu 
items to receive key strokes for key bindings. 

instead, we now have an alternate, and in theory, superior system at our 
disposal - we can get key events directly from Display before they get to the 
widget hierarchy.

this functionality will allow key bindings to work properly on shells without 
menus like dialogs or, in the future, hopefully, undocked modeless tool 
windows (think photoshop..)

also, for those shells that do have menus, we want key bindings to work 
properly whether or not the command to which the key binding is assigned has a 
menu item or not. (not every key binding appears on the menu)

using the term 'accelerator table' is additionally confusing because it should 
be possible to create native accelerator tables without requiring a menu, 
should swt choose to provide us API to do so. this was another potential means 
to solve the above use cases, but the functionality on Display seems to be 
working out well.

moving key bindings to display and reducing our dependancy on the menu for 
accelerators has been a major behind the scenes effort over the past few 
milestones, unfortunately some issues still remain. 

this pr exists to group those issues that remain. 
Comment 3 Douglas Pollock CLA 2003-11-17 12:37:47 EST
I have just had a conversation with Michael Van Meekeren (manager for
platform-ui), and it looks like we will be doing this for M6.

There are a few things to do before this can happen:
+ Investigate the interaction of OLE editors (and their menus) when the
accelerator table is removed.  Make sure that the OLE bindings will continue
working.
+ Write a draft email for eclipse-dev.  The email will describe a suggested set
of key bindings, and recommend that teams migrate to those key bindings.  It
will also describe expected changes in behaviour.


Areas where we are expecting changes in behaviour:
+ Numeric and punctuation keys will have different behaviour on the Windows
platform.  "Ctrl+7" used to match "Ctrl+/", and "Ctrl+Shift+7" used to match
"Ctrl+Shift+/".  Without native accelerators, "Ctrl+7" will not match anything
but "Ctrl+7" -- while "Ctrl+Shift+7" will match both "Ctrl+/" and "Ctrl+Shift+/"
(Bug 46588).
+ On GTK, "Ctrl+Shift+[0-9A-F]" will stop working (Bug 46580).
+ On Mac, function key accelerators will not look quite right (Bug 44003).
Comment 4 Douglas Pollock CLA 2003-12-02 12:27:04 EST
I've written a draft email which will go out today.  OLE editors continue to
have functional key bindings on the Windows platform.

Keyboard shortcuts no longer using native accelerators on the menu.  Everything
is passed through the key binding architecture.
Comment 5 Douglas Pollock CLA 2003-12-17 09:37:46 EST
Verified in I200312162000.  The native accelerator table is no longer in use.