JGonera has uploaded a new change for review.
https://gerrit.wikimedia.org/r/150052
Change subject: Delay scrolling to a heading more on mobile
......................................................................
Delay scrolling to a heading more on mobile
200ms are not enough for the surface to be rendered on iPad (especially
on older models).
Change-Id: I518312b3a038f2e5c9cc2022c51fc4e1e63f599d
---
M modules/ve-mw/init/targets/ve.init.mw.MobileViewTarget.js
M modules/ve-mw/init/ve.init.mw.Target.js
2 files changed, 19 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/52/150052/1
diff --git a/modules/ve-mw/init/targets/ve.init.mw.MobileViewTarget.js
b/modules/ve-mw/init/targets/ve.init.mw.MobileViewTarget.js
index 9140fe2..8389ae1 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.MobileViewTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.MobileViewTarget.js
@@ -103,10 +103,15 @@
/**
* @inheritdoc
*/
-ve.init.mw.MobileViewTarget.prototype.scrollTo = function ( position ) {
+ve.init.mw.MobileViewTarget.prototype.scrollToHeading = function ( headingNode
) {
+ var target = this;
+
if ( this.isIos ) {
- this.surface.$element.closest( '.overlay-content' ).scrollTop(
position );
+ setTimeout( function () {
+ var position = headingNode.$element.offset().top -
target.toolbar.$element.height();
+ target.surface.$element.closest( '.overlay-content'
).scrollTop( position );
+ }, 400 );
} else {
- ve.init.mw.MobileViewTarget.super.prototype.scrollTo.call(
this, position );
+
ve.init.mw.MobileViewTarget.super.prototype.scrollToHeading.call( this,
headingNode );
}
};
diff --git a/modules/ve-mw/init/ve.init.mw.Target.js
b/modules/ve-mw/init/ve.init.mw.Target.js
index 27fc539..9404cbd 100644
--- a/modules/ve-mw/init/ve.init.mw.Target.js
+++ b/modules/ve-mw/init/ve.init.mw.Target.js
@@ -1434,7 +1434,6 @@
ve.init.mw.Target.prototype.restoreEditSection = function () {
if ( this.section !== undefined && this.section > 0 ) {
var offset, offsetNode, nextNode,
- target = this,
surfaceView = this.surface.getView(),
surfaceModel = surfaceView.getModel(),
$documentNode =
surfaceView.getDocument().getDocumentNode().$element,
@@ -1468,10 +1467,7 @@
surfaceModel.setSelection( new ve.Range( offset
) );
} );
// Scroll to heading:
- // Wait for toolbar to animate in so we can account for
its height
- setTimeout( function () {
- target.scrollTo(
headingNode.$element.offset().top - target.toolbar.$element.height() );
- }, 200 );
+ this.scrollToHeading( headingNode );
}
this.section = undefined;
@@ -1479,12 +1475,17 @@
};
/**
- * Scroll to a given position in the document.
+ * Scroll to a given heading in the document.
*
* @method
- * @param {number} position Position (in pixels) to scroll to
+ * @param {ve.ce.HeadingNode} headingNode Heading node to scroll to
*/
-ve.init.mw.Target.prototype.scrollTo = function ( position ) {
- var $window = $( OO.ui.Element.getWindow( this.$element ) );
- $window.scrollTop( position );
+ve.init.mw.Target.prototype.scrollToHeading = function ( headingNode ) {
+ var $window = $( OO.ui.Element.getWindow( this.$element ) ),
+ target = this;
+
+ // Wait for toolbar to animate in so we can account for its height
+ setTimeout( function () {
+ $window.scrollTop( headingNode.$element.offset().top -
target.toolbar.$element.height() );
+ }, 200 );
};
--
To view, visit https://gerrit.wikimedia.org/r/150052
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I518312b3a038f2e5c9cc2022c51fc4e1e63f599d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: JGonera <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits