jenkins-bot has submitted this change and it was merged.

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(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



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..8351c8c 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(), 1
                                );
-                               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: merged
Gerrit-Change-Id: I6fcc463aeeae40278f5caf04ae251c8ecfe65472
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to