From 095a1f5b8b106509cb22662bbd51778c64e979d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Tue, 14 Jul 2009 11:47:50 +0000 Subject: [PATCH] Use the usual function keys as shortcuts for stepping. (From memory, hope I got it right...) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31557 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../debugger/gui/team_window/TeamWindow.cpp | 32 +++++++++++++++++++ .../debugger/gui/team_window/TeamWindow.h | 2 ++ 2 files changed, 34 insertions(+) diff --git a/src/apps/debugger/gui/team_window/TeamWindow.cpp b/src/apps/debugger/gui/team_window/TeamWindow.cpp index 2689285438..3926c807e0 100644 --- a/src/apps/debugger/gui/team_window/TeamWindow.cpp +++ b/src/apps/debugger/gui/team_window/TeamWindow.cpp @@ -113,6 +113,38 @@ TeamWindow::Create(TeamDebugModel* debugModel, Listener* listener) } +void +TeamWindow::DispatchMessage(BMessage* message, BHandler* handler) +{ + // Handle function key shortcuts for stepping + if (fActiveThread != NULL && message->what == B_KEY_DOWN) { + int32 key; + uint32 modifiers; + if (message->FindInt32("key", &key) == B_OK + && message->FindInt32("modifiers", (int32*)&modifiers) == B_OK) { + switch (key) { + case B_F10_KEY: + fListener->ThreadActionRequested(this, fActiveThread->ID(), + MSG_THREAD_STEP_OVER); + break; + case B_F11_KEY: + if ((modifiers & B_SHIFT_KEY) != 0) { + fListener->ThreadActionRequested(this, + fActiveThread->ID(), MSG_THREAD_STEP_OUT); + } else { + fListener->ThreadActionRequested(this, + fActiveThread->ID(), MSG_THREAD_STEP_INTO); + } + break; + default: + break; + } + } + } + BWindow::DispatchMessage(message, handler); +} + + void TeamWindow::MessageReceived(BMessage* message) { diff --git a/src/apps/debugger/gui/team_window/TeamWindow.h b/src/apps/debugger/gui/team_window/TeamWindow.h index 80d0e19e1a..66da45954a 100644 --- a/src/apps/debugger/gui/team_window/TeamWindow.h +++ b/src/apps/debugger/gui/team_window/TeamWindow.h @@ -43,6 +43,8 @@ public: Listener* listener); // throws + virtual void DispatchMessage(BMessage* message, + BHandler* handler); virtual void MessageReceived(BMessage* message); virtual bool QuitRequested();