| Summary: | TabFolders should handle Ctrl+PgUp and Ctrl+PgDown | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Carolyn MacLeod <carolynmacleod4> | ||||
| Component: | UI | Assignee: | Stefan Xenos <sxenos> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | dipalerm, snorthov, Tod_Creasey | ||||
| Version: | 3.0 | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Carolyn MacLeod
Created attachment 10127 [details]
gifs used in snippet
See also: https://bugs.eclipse.org/bugs/show_bug.cgi?id=22004 https://bugs.eclipse.org/bugs/show_bug.cgi?id=15779 Apparently, this used to work... so what we have here is a regression. It has been broken, and fixed, several times. I think it should have higher priority. If 3.0 goes out without Ctrl+PgUp/Ctrl+PgDn I suspect there will be several people who say we are not accessible. Seriously consider raising the priority... Tod? Fixed in head. Note: the patch does not check instanceof CTabFolder, since this will only work with the default presentation. We also do not modify e.detail, since other traverse listeners on the part's control should still get the event (but we don't want it to continue traversing to the parent). I tested the behavior of e.doit by attaching a traverse listener to a parent and child control, and inserting System.out.printlns. It seems to have the opposite semantics than what was described in this original PR, so I have set e.doit to false rather than true. Please let me know if this is incorrect. Try adding a key listener. If you don't eat the key (sequence), then it will go to the control that had focus. Steve, is my understanding of how traverse works correct? Shouldn't Stefan be saying doit = true when the 'repositioned sibling' of the tab folder (aka 'fake child of tab folder') gets and forwards a page traversal to the tab folder? If you perform the action, you need to stop the event by setting the detail. Otherwise, another listener can run and another action might be performed causing two actions for one key stroke. If you do not set doit=true, then the keystroke will be delivered to the control, rather than traversing. This can also cause another action to happen if the keystroke is used by the control. In the case of Ctrl+PgUp, this key is used by Text editors to move the caret to the bottom of the page. If focus is in a Text editor, it will both traverse (because you called traverse()) and move the caret. Did I say top of the page? I meant bottom. |