togglecomment should not scroll if part of the selection is visible

This commit is contained in:
nightwing 2013-12-29 20:02:14 +04:00
commit b6a4a34fd2

View file

@ -133,7 +133,6 @@ var Editor = function(renderer, session) {
if (command.aceCommandGroup == "fileJump") {
if (this.lastFileJumpPos && !this.curOp.selectionChanged) {
this.selection.fromJSON(this.lastFileJumpPos);
return;
}
}
this.endOperation(e);
@ -168,7 +167,8 @@ var Editor = function(renderer, session) {
this.$opResetTimer.schedule();
this.curOp = {
command: commadEvent.command || {},
args: commadEvent.args
args: commadEvent.args,
scrollTop: this.renderer.scrollTop
};
var command = this.curOp.command;
@ -187,16 +187,24 @@ var Editor = function(renderer, session) {
case "center":
this.renderer.scrollCursorIntoView(null, 0.5);
break;
case "animate":
case "cursor":
this.renderer.scrollCursorIntoView();
break;
case "selectionPart":
this.renderer.scrollCursorIntoView();
var range = this.selection.getRange();
var config = this.renderer.layerConfig;
if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {
this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);
}
break;
default:
break;
}
if (command.scrollIntoView == "animate")
this.renderer.animateScrolling(this.curOp.scrollTop);
}
this.prevOp = this.curOp;
this.curOp = null;
}
@ -243,7 +251,6 @@ var Editor = function(renderer, session) {
* Sets a new key handler, such as "vim" or "windows".
* @param {String} keyboardHandler The new key handler
*
*
**/
this.setKeyboardHandler = function(keyboardHandler) {
if (!keyboardHandler) {
@ -277,7 +284,6 @@ var Editor = function(renderer, session) {
* @event changeSession
* @param {Object} e An object with two properties, `oldSession` and `session`, that represent the old and new [[EditSession]]s.
*
*
**/
/**
* Sets a new editsession to use. This method also emits the `'changeSession'` event.
@ -875,7 +881,7 @@ var Editor = function(renderer, session) {
}
if (text == "\n" || text == "\r\n") {
var line = session.getLine(cursor.row)
var line = session.getLine(cursor.row);
if (cursor.column > line.search(/\S|$/)) {
var d = line.substr(cursor.column).search(/\S|$/);
session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);
@ -1202,7 +1208,7 @@ var Editor = function(renderer, session) {
var state = session.getState(range.start.row);
var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);
if (range.end.column == 0) {
if (range.end.column === 0) {
var text = session.getTextRange(range);
if (text[text.length - 1] == "\n") {
var line = session.getLine(range.end.row);
@ -1361,7 +1367,7 @@ var Editor = function(renderer, session) {
}
}
var line = session.getLine(range.start.row)
var line = session.getLine(range.start.row);
var position = range.start;
var size = session.getTabSize();
var column = session.documentToScreenColumn(position.row, position.column);
@ -1632,7 +1638,7 @@ var Editor = function(renderer, session) {
var last = rows.end.row;
var first = rows.start.row;
while (i--) {
var rows = ranges[i].collapseRows();
rows = ranges[i].collapseRows();
if (first - rows.end.row <= 1)
first = rows.end.row;
else
@ -1736,11 +1742,11 @@ var Editor = function(renderer, session) {
var rows = dir * Math.floor(config.height / config.lineHeight);
this.$blockScrolling++;
if (select == true) {
if (select === true) {
this.selection.$moveSelection(function(){
this.moveCursorBy(rows, 0);
});
} else if (select == false) {
} else if (select === false) {
this.selection.moveCursorBy(rows, 0);
this.selection.clearSelection();
}
@ -2069,10 +2075,8 @@ var Editor = function(renderer, session) {
* Moves the cursor to the end of the current file. Note that this does de-select the current selection.
**/
this.navigateFileEnd = function() {
var scrollTop = this.renderer.scrollTop;
this.selection.moveCursorFileEnd();
this.clearSelection();
this.renderer.animateScrolling(scrollTop);
};
/**
@ -2080,10 +2084,8 @@ var Editor = function(renderer, session) {
* Moves the cursor to the start of the current file. Note that this does de-select the current selection.
**/
this.navigateFileStart = function() {
var scrollTop = this.renderer.scrollTop;
this.selection.moveCursorFileStart();
this.clearSelection();
this.renderer.animateScrolling(scrollTop);
};
/**
@ -2266,7 +2268,7 @@ var Editor = function(renderer, session) {
var scrollTop = this.renderer.scrollTop;
this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);
if (animate != false)
if (animate !== false)
this.renderer.animateScrolling(scrollTop);
};