Merge pull request #2223 from velesin/about_me_editor_fix

FIX: broken Pagedown editor for About, Site Content and similar places.
This commit is contained in:
Sam 2014-04-03 18:43:04 +11:00
commit 858eb5ed9a
1 changed files with 21 additions and 10 deletions

View File

@ -871,10 +871,13 @@
var prevScrollPosition = $(panels.input).scrollTop(); var prevScrollPosition = $(panels.input).scrollTop();
var caretMarkerPosition = 0; var caretMarkerPosition = 0;
var markerPositions = { var markerPositions;
scroller: [0, paneContentHeight(panels.previewScroller)], if (panels.previewScroller) {
preview: [0, paneContentHeight(panels.preview)] markerPositions = {
}; scroller: [0, paneContentHeight(panels.previewScroller)],
preview: [0, paneContentHeight(panels.preview)]
};
}
var getCaretPosition = function() { var getCaretPosition = function() {
return Discourse.Utilities.caretPosition(panels.input); return Discourse.Utilities.caretPosition(panels.input);
@ -1040,9 +1043,11 @@
Ember.run(function() { Ember.run(function() {
pushPreviewHtml(previewText, previewScrollerText); pushPreviewHtml(previewText, previewScrollerText);
cacheMarkerPositions(); if (panels.previewScroller) {
cacheCaretMarkerPosition(); cacheMarkerPositions();
syncScroll(true); cacheCaretMarkerPosition();
syncScroll(true);
}
}); });
}; };
@ -1149,12 +1154,16 @@
}; };
ieSafeSet(panels.preview, previewText); ieSafeSet(panels.preview, previewText);
ieSafeSet(panels.previewScroller, previewScrollerText); if (panels.previewScroller) {
ieSafeSet(panels.previewScroller, previewScrollerText);
}
} }
var nonSuckyBrowserPreviewSet = function (previewText, previewScrollerText) { var nonSuckyBrowserPreviewSet = function (previewText, previewScrollerText) {
panels.preview.innerHTML = previewText; panels.preview.innerHTML = previewText;
panels.previewScroller.innerHTML = previewScrollerText; if (panels.previewScroller) {
panels.previewScroller.innerHTML = previewScrollerText;
}
} }
var previewSetter; var previewSetter;
@ -1204,7 +1213,9 @@
// TODO: make option to disable. We don't need this in discourse // TODO: make option to disable. We don't need this in discourse
// setupEvents(panels.input, applyTimeout); // setupEvents(panels.input, applyTimeout);
setupScrollSync(); if (panels.previewScroller) {
setupScrollSync();
}
makePreviewHtml(); makePreviewHtml();