diff options
author | Andy Huang <ath@google.com> | 2012-10-08 18:44:42 -0700 |
---|---|---|
committer | Andy Huang <ath@google.com> | 2012-10-08 18:44:56 -0700 |
commit | df0d91c5fa064e93b647fd62fe2446791664003f (patch) | |
tree | 7a378e3c554076646e1b04ff8705945e9bdbd312 /assets | |
parent | cf36f4d64ce81172d4d92627e64372917d278a45 (diff) | |
download | android_packages_apps_UnifiedEmail-df0d91c5fa064e93b647fd62fe2446791664003f.tar.gz android_packages_apps_UnifiedEmail-df0d91c5fa064e93b647fd62fe2446791664003f.tar.bz2 android_packages_apps_UnifiedEmail-df0d91c5fa064e93b647fd62fe2446791664003f.zip |
When updating a message body, don't collapse quoted text
When a reply is sent and synced, the quoted text portion
transitions from an expanded snippet to a collapsed one,
which shrinks the conversation height and causes the scroll
position to jump.
It's not enough to just avoid processing reply bodies, because
a reply to a wide message must also be normalized if the quoted
text portion is visible.
So when replacing a message body, switch the initial state of
quoted text blocks from collapsed to expanded.
Bug: 7246054
Change-Id: I5375beeb4209779e7cb7feaa570590a9cbc520da
Diffstat (limited to 'assets')
-rw-r--r-- | assets/script.js | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/assets/script.js b/assets/script.js index 3fcfdae11..27da9be3e 100644 --- a/assets/script.js +++ b/assets/script.js @@ -59,8 +59,12 @@ function up(el, className) { return parent || null; } -function toggleQuotedText(e) { - var toggleElement = e.target; +function onToggleClick(e) { + toggleQuotedText(e.target); + measurePositions(); +} + +function toggleQuotedText(toggleElement) { var elidedTextElement = toggleElement.nextSibling; var isHidden = getComputedStyle(elidedTextElement).display == 'none'; toggleElement.innerHTML = isHidden ? MSG_HIDE_ELIDED : MSG_SHOW_ELIDED; @@ -71,15 +75,13 @@ function toggleQuotedText(e) { if (isHidden) { normalizeElementWidths([elidedTextElement]); } - - measurePositions(); } function collapseAllQuotedText() { - collapseQuotedText(document.documentElement); + processQuotedText(document.documentElement, false /* showElided */); } -function collapseQuotedText(elt) { +function processQuotedText(elt, showElided) { var i; var elements = elt.getElementsByClassName("elided-text"); var elidedElement, toggleElement; @@ -88,8 +90,12 @@ function collapseQuotedText(elt) { toggleElement = document.createElement("div"); toggleElement.className = "mail-elided-text"; toggleElement.innerHTML = MSG_SHOW_ELIDED; - toggleElement.onclick = toggleQuotedText; + toggleElement.onclick = onToggleClick; + elidedElement.style.display = 'none'; elidedElement.parentNode.insertBefore(toggleElement, elidedElement); + if (showElided) { + toggleQuotedText(toggleElement); + } } } @@ -359,7 +365,7 @@ function replaceMessageBodies(messageIds) { id = messageIds[i]; msgContentDiv = document.querySelector("#" + id + " > .mail-message-content"); msgContentDiv.innerHTML = window.mail.getMessageBody(id); - collapseQuotedText(msgContentDiv); + processQuotedText(msgContentDiv, true /* showElided */); } } |