Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/70238


Change subject: Place cursor at start of paragraph, not heading, when 
section-editing
......................................................................

Place cursor at start of paragraph, not heading, when section-editing

Also checks for subheadings, i.e. we keep moving forward one sibling
as long as the next sibling is a heading of higher order than the
previous one. If the heading is of the same or lower order then we
assume there is an empty section, so we just stop.

Bug: 49563
Change-Id: I6fcc463aeeae40278f5caf04ae251c8ecfe65472
---
M modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
1 file changed, 16 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/38/70238/1

diff --git a/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js 
b/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
index b964602..3cf6904 100644
--- a/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
@@ -1881,13 +1881,26 @@
                        surfaceView = this.surface.getView(),
                        surfaceModel = surfaceView.getModel();
                this.$document.find( 'h1, h2, h3, h4, h5, h6' ).eq( 
this.section - 1 ).each( function () {
-                       var headingNode = $( this ).data( 'view' );
+                       var offsetNode, nextNode,
+                               headingNode = $( this ).data( 'view' ),
+                               lastHeadingLevel = -1;
 
                        if ( headingNode ) {
+                               // Find next sibling which isn't a heading
+                               offsetNode = headingNode;
+                               while ( offsetNode instanceof ve.ce.HeadingNode 
&& offsetNode.getModel().getAttribute( 'level' ) > lastHeadingLevel ) {
+                                       lastHeadingLevel = 
offsetNode.getModel().getAttribute( 'level' );
+                                       // Next sibling
+                                       nextNode = 
offsetNode.parent.children[ve.indexOf( offsetNode, offsetNode.parent.children ) 
+ 1];
+                                       if ( !nextNode ) {
+                                               break;
+                                       }
+                                       offsetNode = nextNode;
+                               }
                                offset = 
surfaceModel.getDocument().data.getNearestContentOffset(
-                                       headingNode.getModel().getOffset()
+                                       offsetNode.getModel().getOffset()
                                );
-                               surfaceModel.change( null, new ve.Range( 
offset, offset ) );
+                               surfaceModel.change( null, new ve.Range( offset 
) );
                                // Scroll to heading:
                                // Wait for toolbar to animate in so we can 
account for its height
                                setTimeout( function () {

-- 
To view, visit https://gerrit.wikimedia.org/r/70238
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6fcc463aeeae40278f5caf04ae251c8ecfe65472
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to