Fix for bug 51360. Replace function EnsureElementIsVisible by more acurate functions to manipulate the addressing widget tree position. Also fix several Javascript strict warnings. R=bienvenu

This commit is contained in:
ducarroz%netscape.com 2000-09-12 20:38:19 +00:00
Родитель 71264427c8
Коммит fe8e201037
6 изменённых файлов: 46 добавлений и 24 удалений

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

@ -520,7 +520,7 @@ function GetArgs()
var pairs = data.split(separator);
// dump("Compose: argument: {" + data + "}\n");
for (var i = pairs.length - 1; i >= 0; i--)
for (i = pairs.length - 1; i >= 0; i--)
{
var pos = pairs[i].indexOf('=');
if (pos == -1)
@ -588,7 +588,7 @@ function ComposeStartup()
identity = identities.QueryElementAt(0, Components.interfaces.nsIMsgIdentity);
else
{
var identities = GetIdentities();
identities = GetIdentities();
identity = identities[0];
}
}
@ -951,15 +951,15 @@ function GenericSendMessage( msgType )
recommAction = convert == msgCompConvertible.No
? msgCompSendFormat.AskUser
: msgCompSendFormat.PlainText;
var result = {action:recommAction,
var result2 = {action:recommAction,
convertible:convert,
abort:false};
window.openDialog("chrome://messenger/content/messengercompose/askSendFormat.xul",
"askSendFormatDialog", "chrome,modal,titlebar,centerscreen",
result);
if (result.abort)
result2);
if (result2.abort)
return;
action = result.action;
action = result2.action;
}
switch (action)
{
@ -1257,7 +1257,7 @@ function SetComposeWindowTitle(event)
return;
}
newTitle = document.getElementById('msgSubject').value;
var newTitle = document.getElementById('msgSubject').value;
/* dump("newTitle = " + newTitle + "\n"); */
@ -1361,6 +1361,7 @@ function AddAttachment(attachment)
var row = document.createElement("treerow");
var cell = document.createElement("treecell");
var prettyName = attachment;
if (msgCompose)
prettyName = msgCompose.AttachmentPrettyName(attachment);
cell.setAttribute("value", prettyName); //use for display only
@ -1524,17 +1525,17 @@ function DetermineConvertibility()
return msgCompose.bodyConvertible(
window.editorShell.contentWindow.document.childNodes[1]);
} catch(ex) {}
return msgCompConvertible.No;
}
function LoadIdentity(startup)
{
var identityElement = document.getElementById("msgIdentity");
prevIdentity = currentIdentity;
var identityElement = document.getElementById("msgIdentity");
var prevIdentity = currentIdentity;
if (identityElement) {
var item = identityElement.selectedItem;
idKey = item.getAttribute('id');
var idKey = item.getAttribute('id');
currentIdentity = accountManager.getIdentity(idKey);
if (!startup && prevIdentity && idKey != prevIdentity.key)
@ -1636,7 +1637,7 @@ function AttachmentBucketClicked(event)
var attachmentBucketObserver = {
onDrop: function (aEvent, aData, aDragSession)
{
var aData = aData.length ? aData[0] : aData;
aData = aData.length ? aData[0] : aData;
if (aData.flavour != "application/x-moz-file")
return;
@ -1644,8 +1645,7 @@ var attachmentBucketObserver = {
if (!dataObj)
return;
var fileURL = nsJSComponentManager.createInstance("component://netscape/network/standard-url",
"nsIFileURL");
var fileURL = nsJSComponentManager.createInstance("component://netscape/network/standard-url", "nsIFileURL");
fileURL.file = dataObj;
AddAttachment(fileURL.spec);
},
@ -1669,5 +1669,5 @@ var attachmentBucketObserver = {
var flavourList = { };
flavourList["application/x-moz-file"] = { width: 2, iid: "nsIFile" };
return flavourList;
},
}
};

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

@ -44,10 +44,10 @@ function awGetSelectItemIndex(itemData)
if (selectElementIndexTable == null)
{
selectElementIndexTable = new Object();
selectElem = document.getElementById("msgRecipientType#1");
var selectElem = document.getElementById("msgRecipientType#1");
for (var i = 0; i < selectElem.childNodes[0].childNodes.length; i ++)
{
aData = selectElem.childNodes[0].childNodes[i].getAttribute("data");
var aData = selectElem.childNodes[0].childNodes[i].getAttribute("data");
selectElementIndexTable[aData] = i;
}
}
@ -338,7 +338,7 @@ function awAppendNewRow(setFocus)
{
var lastRecipientType = awGetPopupElement(top.MAX_RECIPIENTS).selectedItem.getAttribute("data");
newNode = awCopyNode(treeitem1, body, 0);
var newNode = awCopyNode(treeitem1, body, 0);
top.MAX_RECIPIENTS++;
var input = newNode.getElementsByTagName(awInputElementName());
@ -474,11 +474,21 @@ function _awSetFocus()
var tree = document.getElementById('addressingWidgetTree');
try
{
theNewRow = awGetTreeRow(top.awRow);
var theNewRow = awGetTreeRow(top.awRow);
//temporary patch for bug 26344
awFinishCopyNode(theNewRow);
tree.ensureElementIsVisible(theNewRow);
//Warning: firstVisibleRow is zero base but top.awRow is one base!
var firstVisibleRow = tree.getIndexOfFirstVisibleRow();
var numOfVisibleRows = tree.getNumberOfVisibleRows();
//Do we need to scroll in order to see the selected row?
if (top.awRow <= firstVisibleRow)
tree.scrollToIndex(top.awRow - 1);
else
if (top.awRow - 1 >= (firstVisibleRow + numOfVisibleRows))
tree.scrollToIndex(top.awRow - numOfVisibleRows);
top.awInputElement.focus();
}
catch(ex)
@ -615,8 +625,8 @@ function _awSetAutoComplete(selectElem, inputElem)
function awSetAutoComplete(rowNumber)
{
inputElem = awGetInputElement(rowNumber);
selectElem = awGetPopupElement(rowNumber);
var inputElem = awGetInputElement(rowNumber);
var selectElem = awGetPopupElement(rowNumber);
_awSetAutoComplete(selectElem, inputElem)
}

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

@ -28,7 +28,7 @@ Rights Reserved.
<script language="JavaScript" src="chrome://messenger/content/messengercompose/addressingWidgetOverlay.js"/>
<!-- Addressing Widget -->
<tree id="addressingWidgetTree" style="height: 60px; width: 0px;"
<tree id="addressingWidgetTree"
class="addressingWidget inset" multiple="true"
onkeypress="awKeyPress(event, this);"
onclick="awClickEmptySpace(event.target, true)"
@ -46,7 +46,7 @@ Rights Reserved.
<treecell class="treecell-addressingWidget" allowevents="true">
<menulist id="msgRecipientType#1" class="aw-menulist menulist-compact"
onclick="awNotAnEmptyArea(event)"
oncommand="awDisableAutoComplete(this.id.slice(this.id.lastIndexOf('#') + 1));">
oncommand="awSetAutoComplete(this.id.slice(this.id.lastIndexOf('#') + 1));">
<menupopup>
<menuitem data="addr_to" value="&toAddr.label;"/>
<menuitem data="addr_cc" value="&ccAddr.label;"/>

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

@ -23,6 +23,11 @@ box.padded {
/* addressing widget */
#addressingWidgetTree {
height : 80px;
width : 0px;
}
tree[class="addressingWidget"] treeitem > treerow > treecell > box > image {
vertical-align: middle;
padding:2px;

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

@ -216,6 +216,8 @@
#addressingWidgetTree
{
height: 61px;
width: 0px;
-moz-user-focus : none;
}

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

@ -43,6 +43,11 @@ box.padded {
/* addressing widget */
#addressingWidgetTree {
height : 80px;
width : 0px;
}
tree[class="addressingWidget"] treeitem > treerow > treecell > box > image {
vertical-align: middle;
padding:2px;