Esanders has uploaded a new change for review.

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

Change subject: Handle triple click with surface fragments
......................................................................

Handle triple click with surface fragments

Also change the type argument of the currently-unused 'closest'
expandRange mode to be a instanceof check, instead of a
string type check.

Change-Id: I9282be1a01bd3559c3c565b3237d6ac7a274dada
---
M src/ce/ve.ce.Surface.js
M src/dm/ve.dm.SurfaceFragment.js
2 files changed, 4 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/49/163849/1

diff --git a/src/ce/ve.ce.Surface.js b/src/ce/ve.ce.Surface.js
index 40becd1..462b59a 100644
--- a/src/ce/ve.ce.Surface.js
+++ b/src/ce/ve.ce.Surface.js
@@ -647,7 +647,7 @@
                return;
        }
 
-       var selection, node, view = this;
+       var view = this;
 
        // Remember the mouse is down
        this.dragging = true;
@@ -668,13 +668,7 @@
                // Browser default behaviour for triple click won't behave as 
we want
                e.preventDefault();
 
-               selection = this.model.getSelection();
-               node = this.documentView.getDocumentNode().getNodeFromOffset( 
selection.start );
-               // Find the nearest non-content node
-               while ( node.parent !== null && node.getModel().isContent() ) {
-                       node = node.parent;
-               }
-               this.model.setSelection( node.getModel().getRange() );
+               this.getModel().getFragment().expandRange( 'closest', 
ve.dm.BranchNode ).adjustRange( 1, -1 ).select();
        }
 };
 
diff --git a/src/dm/ve.dm.SurfaceFragment.js b/src/dm/ve.dm.SurfaceFragment.js
index 357c40b..4557606 100644
--- a/src/dm/ve.dm.SurfaceFragment.js
+++ b/src/dm/ve.dm.SurfaceFragment.js
@@ -351,7 +351,7 @@
  *  - `annotation`: Expands to cover a given annotation (argument) within the 
current range
  *  - `root`: Expands to cover the entire document
  *  - `siblings`: Expands to cover all sibling nodes
- *  - `closest`: Expands to cover the closest common ancestor node of a give 
type (argument)
+ *  - `closest`: Expands to cover the closest common ancestor node of a give 
type (ve.dm.Node)
  *  - `parent`: Expands to cover the closest common parent node
  * @param {Mixed} [type] Parameter to use with scope method if needed
  * @returns {ve.dm.SurfaceFragment} Expanded fragment
@@ -409,7 +409,7 @@
                        // Grow range to cover closest common ancestor node of 
given type
                        node = this.document.selectNodes( oldRange, 'siblings' 
)[0].node;
                        parent = node.getParent();
-                       while ( parent && parent.getType() !== type ) {
+                       while ( parent && !( parent instanceof type ) ) {
                                node = parent;
                                parent = parent.getParent();
                        }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9282be1a01bd3559c3c565b3237d6ac7a274dada
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/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