mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 443863 - ctrl-9 to select last tab is klugishly implemented. r=gavin
This commit is contained in:
parent
65a67ae803
commit
2934add284
@ -330,15 +330,15 @@
|
||||
#define NUM_SELECT_TAB_MODIFIER accel
|
||||
#endif
|
||||
|
||||
#expand <key id="key_selectTab1" oncommand="BrowserNumberTabSelection(event, 0);" key="1" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab2" oncommand="BrowserNumberTabSelection(event, 1);" key="2" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab3" oncommand="BrowserNumberTabSelection(event, 2);" key="3" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab4" oncommand="BrowserNumberTabSelection(event, 3);" key="4" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab5" oncommand="BrowserNumberTabSelection(event, 4);" key="5" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab6" oncommand="BrowserNumberTabSelection(event, 5);" key="6" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab7" oncommand="BrowserNumberTabSelection(event, 6);" key="7" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab8" oncommand="BrowserNumberTabSelection(event, 7);" key="8" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab9" oncommand="BrowserNumberTabSelection(event, 8);" key="9" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab1" oncommand="gBrowser.selectTabAtIndex(0, event);" key="1" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab2" oncommand="gBrowser.selectTabAtIndex(1, event);" key="2" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab3" oncommand="gBrowser.selectTabAtIndex(2, event);" key="3" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab4" oncommand="gBrowser.selectTabAtIndex(3, event);" key="4" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab5" oncommand="gBrowser.selectTabAtIndex(4, event);" key="5" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab6" oncommand="gBrowser.selectTabAtIndex(5, event);" key="6" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab7" oncommand="gBrowser.selectTabAtIndex(6, event);" key="7" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectTab8" oncommand="gBrowser.selectTabAtIndex(7, event);" key="8" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
#expand <key id="key_selectLastTab" oncommand="gBrowser.selectTabAtIndex(-1, event);" key="9" modifiers="__NUM_SELECT_TAB_MODIFIER__"/>
|
||||
|
||||
</keyset>
|
||||
|
||||
|
@ -1311,23 +1311,6 @@ SanitizeListener.prototype =
|
||||
}
|
||||
}
|
||||
|
||||
function BrowserNumberTabSelection(event, index)
|
||||
{
|
||||
// [Ctrl]+[9] always selects the last tab
|
||||
if (index == 8)
|
||||
index = gBrowser.tabContainer.childNodes.length - 1;
|
||||
else if (index >= gBrowser.tabContainer.childNodes.length)
|
||||
return;
|
||||
|
||||
var oldTab = gBrowser.selectedTab;
|
||||
var newTab = gBrowser.tabContainer.childNodes[index];
|
||||
if (newTab != oldTab)
|
||||
gBrowser.selectedTab = newTab;
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
||||
function gotoHistoryIndex(aEvent)
|
||||
{
|
||||
var index = aEvent.target.getAttribute("index");
|
||||
|
@ -1729,6 +1729,28 @@
|
||||
</body>
|
||||
</method>
|
||||
|
||||
<method name="selectTabAtIndex">
|
||||
<parameter name="aIndex"/>
|
||||
<parameter name="aEvent"/>
|
||||
<body>
|
||||
<![CDATA[
|
||||
// count backwards for aIndex < 0
|
||||
if (aIndex < 0)
|
||||
aIndex += this.mTabs.length;
|
||||
|
||||
if (aIndex > 0 &&
|
||||
aIndex < this.mTabs.length &&
|
||||
aIndex != this.tabContainer.selectedIndex)
|
||||
this.selectedTab = this.mTabs[aIndex];
|
||||
|
||||
if (aEvent) {
|
||||
aEvent.preventDefault();
|
||||
aEvent.stopPropagation();
|
||||
}
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
||||
<property name="tabContainer" readonly="true">
|
||||
<getter>
|
||||
return this.mTabContainer;
|
||||
|
@ -63,6 +63,7 @@ _BROWSER_FILES = browser_bug321000.js \
|
||||
browser_page_style_menu.js \
|
||||
page_style_sample.html \
|
||||
browser_ctrlTab.js \
|
||||
browser_selectTabAtIndex.js \
|
||||
$(NULL)
|
||||
|
||||
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
|
||||
|
19
browser/base/content/test/browser_selectTabAtIndex.js
Normal file
19
browser/base/content/test/browser_selectTabAtIndex.js
Normal file
@ -0,0 +1,19 @@
|
||||
function test() {
|
||||
for (let i = 0; i < 9; i++)
|
||||
gBrowser.addTab();
|
||||
|
||||
var isLinux = navigator.platform.indexOf("Linux") == 0;
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
EventUtils.synthesizeKey(i.toString(), { altKey: isLinux, accelKey: !isLinux });
|
||||
|
||||
is(gBrowser.tabContainer.selectedIndex, (i == 9 ? gBrowser.mTabs.length : i) - 1,
|
||||
(isLinux ? "Alt" : "Accel") + "+" + i + " selects expected tab");
|
||||
}
|
||||
|
||||
gBrowser.selectTabAtIndex(-3);
|
||||
is(gBrowser.tabContainer.selectedIndex, gBrowser.mTabs.length - 3,
|
||||
"gBrowser.selectTabAtIndex(-3) selects expected tab");
|
||||
|
||||
for (let i = 0; i < 9; i++)
|
||||
gBrowser.removeCurrentTab();
|
||||
}
|
Loading…
Reference in New Issue
Block a user