Preserve scroll position after dialog close

Bug: 49977
Change-Id: I8cc12ba7845eebc6199fbcd2d355bf0d5f38264b
This commit is contained in:
Ed Sanders 2013-06-26 13:03:59 +01:00
parent ac8d5eccb2
commit 10948ba91f

View file

@ -253,7 +253,13 @@ ve.ce.Surface.prototype.destroy = function () {
* This is used when switching between surfaces, e.g. when closing a dialog window.
*/
ve.ce.Surface.prototype.focus = function () {
this.documentView.getDocumentNode().$[0].focus();
var $document = this.documentView.getDocumentNode().$,
$window = $( ve.Element.static.getWindow( $document ) ),
scrollTop = $window.scrollTop();
$document[0].focus();
// Calling focus sets the cursor to zero offset, so we need to restore scrollTop
$window.scrollTop( scrollTop );
this.focusedNode = null;
this.onChange( null, this.surface.getModel().selection );
};