Don't let sidebar panels take focus unless the user just selected the panel (i.e. don't focus them when a new window is opened). Bug 76621. r=blake, sr=jag.

This commit is contained in:
bryner%netscape.com 2006-07-27 14:56:56 +00:00
Родитель 455c527ce5
Коммит e184ed27d1
4 изменённых файлов: 22 добавлений и 11 удалений

Просмотреть файл

@ -49,7 +49,13 @@ var gHistoryStatus;
var gHistoryGrouping = "";
var gWindowManager = null;
function HistoryInit()
function HistoryWindowInit()
{
HistoryCommonInit();
gHistoryTree.focus();
}
function HistoryCommonInit()
{
gHistoryTree = document.getElementById("historyTree");
gDeleteByHostname = document.getElementById("menu_deleteByHostname");
@ -102,7 +108,7 @@ function HistoryInit()
pbi.addObserver("browser.history.grouping", groupObserver, false);
}
}
gHistoryTree.focus();
gHistoryTree.treeBoxObject.view.selection.select(0);
}
@ -443,4 +449,4 @@ function updateItems()

Просмотреть файл

@ -466,7 +466,6 @@ function SearchPanelStartup()
else
switchTab(1);
}
focusTextBox();
}
function haveSearchResults()
@ -572,12 +571,6 @@ function loadEngines(aCategory)
}
}
function focusTextBox()
{
var textBox = document.getElementById("sidebar-search-text");
textBox.focus();
}
function SearchPanelShutdown()
{
var tree = document.getElementById("resultList");

Просмотреть файл

@ -30,7 +30,7 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
orient="vertical" onload="SearchPanelStartup();"
onunload="SearchPanelShutdown();">
onunload="SearchPanelShutdown();" elementtofocus="sidebar-search-text">
<script type="application/x-javascript" src="chrome://global/content/nsUserSettings.js"/>
<script type="application/x-javascript" src="chrome://global/content/nsJSComponentManager.js"/>

Просмотреть файл

@ -284,6 +284,16 @@ function panel_loader() {
this.removeAttribute('collapsed');
this.setAttribute('loadstate','loaded');
this.parentNode.firstChild.setAttribute('hidden','true');
if (this.hasAttribute('focusOnLoad')) {
var elementToFocus = this.contentDocument.documentElement.getAttribute('elementtofocus');
if (elementToFocus) {
var element = this.contentDocument.getElementById(elementToFocus);
if (element)
element.focus();
}
this.removeAttribute('focusOnLoad');
}
}
sbPanelList.prototype.update =
function (force_reload)
@ -956,6 +966,8 @@ function SidebarSelectPanel(header, should_popopen, should_unhide) {
}
if (unhide) SidebarShowHide();
if (popopen) SidebarExpandCollapse();
panel.get_iframe().setAttribute('focusOnLoad', true);
if (!panel.is_selected()) panel.select(false);
return true;