From e64e6d933a418060ceedf20dad4f19d4901dd5be Mon Sep 17 00:00:00 2001 From: leavengood Date: Mon, 1 Mar 2010 04:25:55 +0000 Subject: [PATCH] Add shortcuts for using Alt-[1-9] to select that tab. git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@249 94f232f2-1747-11df-bad5-a5bfde151594 --- src/apps/webpositive/BrowserWindow.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/apps/webpositive/BrowserWindow.cpp b/src/apps/webpositive/BrowserWindow.cpp index 4a4413784d..7b1406161c 100644 --- a/src/apps/webpositive/BrowserWindow.cpp +++ b/src/apps/webpositive/BrowserWindow.cpp @@ -79,6 +79,8 @@ enum { TEXT_HIDE_FIND_GROUP = 'hfnd', TEXT_FIND_NEXT = 'fndn', TEXT_FIND_PREVIOUS = 'fndp', + + SELECT_TAB = 'sltb', }; @@ -249,6 +251,15 @@ BrowserWindow::BrowserWindow(BRect frame, const BMessenger& downloadListener, AddShortcut('F', B_COMMAND_KEY, new BMessage(TEXT_SHOW_FIND_GROUP)); AddShortcut('F', B_COMMAND_KEY | B_SHIFT_KEY, new BMessage(TEXT_HIDE_FIND_GROUP)); AddShortcut('R', B_COMMAND_KEY, new BMessage(RELOAD)); + + // Add shortcuts to select a particular tab + for (int32 i = 1; i <= 9; i++) { + BMessage *selectTab = new BMessage(SELECT_TAB); + selectTab->AddInt32("tab index", i - 1); + char numStr[2]; + snprintf(numStr, sizeof(numStr), "%d", (int) i); + AddShortcut(numStr[0], B_COMMAND_KEY, selectTab); + } be_app->PostMessage(WINDOW_OPENED); } @@ -396,6 +407,17 @@ BrowserWindow::MessageReceived(BMessage* message) PostMessage(B_QUIT_REQUESTED); break; + case SELECT_TAB: { + int32 index; + if (message->FindInt32("tab index", &index) == B_OK + && fTabManager->SelectedTabIndex() != index + && fTabManager->CountTabs() > index) { + fTabManager->SelectTab(index); + } + + break; + } + case TAB_CHANGED: { // This message may be received also when the last tab closed, i.e. with index == -1. int32 index;