зеркало из https://github.com/mozilla/pjs.git
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:
Родитель
71264427c8
Коммит
fe8e201037
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче