Bug 440702 - Link modifiers should use the command attribute instead of oncommand (and remove observes elements). r=gavin, ui-r=beltzner

This commit is contained in:
Klaas Heidstra
2008-09-01 22:19:24 +02:00
parent 0eec0f1d55
commit ce1089f841
5 changed files with 44 additions and 41 deletions

View File

@@ -114,12 +114,14 @@
label="&backCmd.label;"
accesskey="&backCmd.accesskey;"
chromedir="&locale.dir;"
command="Browser:Back"/>
command="Browser:BackOrBackDuplicate"
onclick="checkForMiddleClick(this, event);"/>
<menuitem id="context-forward"
label="&forwardCmd.label;"
accesskey="&forwardCmd.accesskey;"
chromedir="&locale.dir;"
command="Browser:Forward"/>
command="Browser:ForwardOrForwardDuplicate"
onclick="checkForMiddleClick(this, event);"/>
<menuitem id="context-reload"
label="&reloadCmd.label;"
accesskey="&reloadCmd.accesskey;"

View File

@@ -362,10 +362,8 @@
key="goBackKb"
#endif
chromedir="&locale.dir;"
oncommand="BrowserBack(event, true)"
onclick="checkForMiddleClick(this, event);">
<observes element="Browser:Back" attribute="disabled" />
</menuitem>
command="Browser:BackOrBackDuplicate"
onclick="checkForMiddleClick(this, event);"/>
<menuitem id="historyMenuForward"
label="&forwardCmd.label;"
#ifdef XP_MACOSX
@@ -374,11 +372,8 @@
key="goForwardKb"
#endif
chromedir="&locale.dir;"
oncommand="BrowserForward(event, true)"
onclick="checkForMiddleClick(this, event);">
<observes element="Browser:Forward" attribute="disabled" />
</menuitem>
command="Browser:ForwardOrForwardDuplicate"
onclick="checkForMiddleClick(this, event);"/>
<menuitem id="historyMenuHome"
label="&historyHomeCmd.label;"
oncommand="BrowserGoHome(event);"

View File

@@ -98,7 +98,13 @@
disabled="true"/>
<command id="Browser:Home" oncommand="BrowserHome();"/>
<command id="Browser:Back" oncommand="BrowserBack();" disabled="true"/>
<command id="Browser:BackOrBackDuplicate" oncommand="BrowserBack(event);" disabled="true">
<observes element="Browser:Back" attribute="disabled"/>
</command>
<command id="Browser:Forward" oncommand="BrowserForward();" disabled="true"/>
<command id="Browser:ForwardOrForwardDuplicate" oncommand="BrowserForward(event);" disabled="true">
<observes element="Browser:Forward" attribute="disabled"/>
</command>
<command id="Browser:Stop" oncommand="BrowserStop();" disabled="true"/>
<command id="Browser:Reload" oncommand="if (event.shiftKey) BrowserReloadSkipCache(); else BrowserReload()" disabled="true"/>
<command id="Browser:ReloadOrDuplicate" oncommand="BrowserReloadOrDuplicate(event)" disabled="true">

View File

@@ -158,8 +158,7 @@ function getContentAreaFrameCount()
saveFrameItem.removeAttribute("hidden");
}
function UpdateBackForwardCommands(aWebNavigation)
{
function UpdateBackForwardCommands(aWebNavigation) {
var backBroadcaster = document.getElementById("Browser:Back");
var forwardBroadcaster = document.getElementById("Browser:Forward");
@@ -1360,9 +1359,8 @@ function gotoHistoryIndex(aEvent)
}
}
function BrowserForward(aEvent, aIgnoreAlt)
{
var where = whereToOpenLink(aEvent, false, aIgnoreAlt);
function BrowserForward(aEvent) {
var where = whereToOpenLink(aEvent, false, true);
if (where == "current") {
try {
@@ -1380,9 +1378,8 @@ function BrowserForward(aEvent, aIgnoreAlt)
}
}
function BrowserBack(aEvent, aIgnoreAlt)
{
var where = whereToOpenLink(aEvent, false, aIgnoreAlt);
function BrowserBack(aEvent) {
var where = whereToOpenLink(aEvent, false, true);
if (where == "current") {
try {
@@ -1470,22 +1467,17 @@ function BrowserHome()
loadOneOrMoreURIs(homePage);
}
function BrowserGoHome(aEvent)
{
function BrowserGoHome(aEvent) {
if (aEvent && "button" in aEvent &&
aEvent.button == 2) // right-click: do nothing
return;
var homePage = gHomeButton.getHomePage();
var where = whereToOpenLink(aEvent);
var where = whereToOpenLink(aEvent, false, true);
var urls;
// openUILinkIn in utilityOverlay.js doesn't handle loading multiple pages
switch (where) {
case "save":
urls = homePage.split("|");
saveURL(urls[0], null, null, true); // only save the first page
break;
case "current":
loadOneOrMoreURIs(homePage);
break;
@@ -3235,8 +3227,7 @@ function BrowserCustomizeToolbar()
#endif
}
function BrowserToolboxCustomizeDone(aToolboxChanged)
{
function BrowserToolboxCustomizeDone(aToolboxChanged) {
#ifdef TOOLBAR_CUSTOMIZATION_SHEET
document.getElementById("customizeToolbarSheetIFrame").hidden = true;
document.getElementById("customizeToolbarSheetPopup").hidePopup();
@@ -3294,6 +3285,17 @@ function BrowserToolboxCustomizeDone(aToolboxChanged)
reloadButton.disabled =
document.getElementById("Browser:Reload").getAttribute("disabled") == "true";
}
//bug 440702: the back and forward buttons also suffer from bug 309953.
var backButton = document.getElementById("back-button");
if (backButton) {
backButton.disabled =
document.getElementById("Browser:Back").getAttribute("disabled") == "true";
}
var forwardButton = document.getElementById("forward-button");
if (forwardButton) {
forwardButton.disabled =
document.getElementById("Browser:Forward").getAttribute("disabled") == "true";
}
#ifdef XP_MACOSX
// make sure to re-enable click-and-hold

View File

@@ -288,28 +288,24 @@
<toolbarpalette id="BrowserToolbarPalette">
<toolbaritem id="unified-back-forward-button" class="chromeclass-toolbar-additional"
context="backForwardMenu"
onbroadcast="document.getElementById('back-forward-dropmarker').disabled =
document.getElementById('Browser:Back').hasAttribute('disabled') &amp;&amp;
document.getElementById('Browser:Forward').hasAttribute('disabled');">
context="backForwardMenu">
<toolbarbutton id="back-button" class="toolbarbutton-1"
chromedir="&locale.dir;"
label="&backCmd.label;"
oncommand="BrowserBack(event)"
command="Browser:BackOrBackDuplicate"
onclick="checkForMiddleClick(this, event);"
tooltiptext="&backButton.tooltip;">
<observes element="Browser:Back" attribute="disabled"/>
</toolbarbutton>
tooltiptext="&backButton.tooltip;"/>
<toolbarbutton id="forward-button" class="toolbarbutton-1"
chromedir="&locale.dir;"
label="&forwardCmd.label;"
oncommand="BrowserForward(event)"
command="Browser:ForwardOrForwardDuplicate"
onclick="checkForMiddleClick(this, event);"
tooltiptext="&forwardButton.tooltip;">
<observes element="Browser:Forward" attribute="disabled"/>
</toolbarbutton>
tooltiptext="&forwardButton.tooltip;"/>
<toolbarbutton id="back-forward-dropmarker" type="menu" chromedir="&locale.dir;"
disabled="true" tooltiptext="&backForwardMenu.tooltip;">
disabled="true" tooltiptext="&backForwardMenu.tooltip;"
onbroadcast="if (this.disabled) this.disabled =
document.getElementById('Browser:Back').hasAttribute('disabled') &amp;&amp;
document.getElementById('Browser:Forward').hasAttribute('disabled');">
<!-- bug 415444: event.stopPropagation is here for the cloned version of
this menupopup -->
<menupopup context=""
@@ -318,6 +314,8 @@
onpopupshowing="return FillHistoryMenu(event.target);"
oncommand="gotoHistoryIndex(event); event.stopPropagation();"
onclick="checkForMiddleClick(this, event);"/>
<observes element="Browser:Back" attribute="disabled"/>
<observes element="Browser:Forward" attribute="disabled"/>
</toolbarbutton>
</toolbaritem>