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

Reply via email to