Fixed keyboard navigation; it should now behave pretty much like R5 AFAICT:

- moved standard keyboard navigation into the BView::KeyDown() hook
- the window now only handles tab+option/command key
- B_COMMAND_KEY triggers group jumping, not B_CONTROL_KEY (that activates the switcher,
  but directly in the app_server)
- fixed broken group navigation: (modifiers & B_COMMAND_KEY & B_SHIFT_KEY) is different
  to (modifiers & (B_COMMAND_KEY | B_SHIFT_KEY)) and is just never true with these
  constants.
That allows the tab key completion to be used again in Terminal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14038 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-08-21 14:44:53 +00:00
parent 17e7576146
commit ef5ab08df3
3 changed files with 65 additions and 51 deletions
+8 -9
View File
@@ -353,8 +353,6 @@ private:
void BuildTopView();
void setFocus(BView *focusView, bool notifyIputServer = false);
bool handleKeyDown(uint32 key, uint32 modifiers);
// message: B_MOUSE_UP, B_MOUSE_DOWN, B_MOUSE_MOVED
void sendMessageUsingEventMask(int32 message, BPoint where);
BView* sendMessageUsingEventMask2(BView* aView, int32 message, BPoint where);
@@ -363,15 +361,16 @@ private:
BView* findView(BView* aView, const char* viewName) const;
BView* findView(BView* aView, BPoint point) const;
BView* findView(BView* aView, int32 token);
BView* findNextView(BView *focus, uint32 flags);
BView* findPrevView(BView *focus, uint32 flags);
BView* findLastChild(BView *parent);
bool handleKeyDown(const char key, uint32 modifiers);
void handleActivation( bool active);
void drawAllViews(BView* aView);
void DoUpdate(BView* aView, BRect& area);
BView* _FindNextNavigable(BView *focus, uint32 flags);
BView* _FindPreviousNavigable(BView *focus, uint32 flags);
bool _HandleKeyDown(char key, uint32 modifiers);
void _KeyboardNavigation();
void handleActivation(bool active);
void drawAllViews(BView* view);
void DoUpdate(BView* view, BRect& area);
// Debug
void PrintToStream() const;