| Index: tools/turbolizer/text-view.js | 
| diff --git a/tools/turbolizer/text-view.js b/tools/turbolizer/text-view.js | 
| index c41c25b768253e6d9c1b1a3cc744bcf6553bbfc4..5a3639d5bc7c0b14031a027b6af1cefd4d2f82a1 100644 | 
| --- a/tools/turbolizer/text-view.js | 
| +++ b/tools/turbolizer/text-view.js | 
| @@ -28,6 +28,7 @@ class TextView extends View { | 
| i.classList.remove("selected"); | 
| } | 
| } | 
| +        broker.clear(selectionHandler); | 
| broker.select(selectionHandler, view.getRanges(items), selected); | 
| }, | 
| selectionDifference: function(span1, inclusive1, span2, inclusive2) { | 
| @@ -68,7 +69,8 @@ class TextView extends View { | 
| for (let range of ranges) { | 
| let start = range[0]; | 
| let end = range[1]; | 
| -      let location = { pos_start: start, pos_end: end }; | 
| +      let block_id = range[3]; | 
| +      let location = { pos_start: start, pos_end: end, block_id: block_id }; | 
| if (range[2] !== null && range[2] != -1) { | 
| location.node_id = range[2]; | 
| if (range[0] == -1 && range[1] == -1) { | 
| @@ -185,9 +187,13 @@ class TextView extends View { | 
| let start = -1; | 
| let end = -1; | 
| let node_id = -1; | 
| +        let block_id = -1; | 
| if (location.node_id !== undefined) { | 
| node_id = location.node_id; | 
| } | 
| +        if (location.block_id !== undefined) { | 
| +          block_id = location.block_id; | 
| +        } | 
| if (location.pos_start !== undefined) { | 
| start = location.pos_start; | 
| end = location.pos_end; | 
| @@ -200,8 +206,9 @@ class TextView extends View { | 
| if (lastObject == null || | 
| (lastObject[2] != node_id || | 
| lastObject[0] != start || | 
| -             lastObject[1] != end)) { | 
| -          lastObject = [start, end, node_id]; | 
| +             lastObject[1] != end || | 
| +             lastObject[3] != block_id)) { | 
| +          lastObject = [start, end, node_id, block_id]; | 
| result.push(lastObject); | 
| } | 
| } | 
|  |