right clicking no longer clears the selection

This commit is contained in:
Fabian Jakobs 2010-10-05 18:33:27 +02:00
commit b263854515
2 changed files with 34 additions and 16 deletions

View file

@ -8,6 +8,7 @@
require.def("ace/Editor",
[
"ace/ace",
"ace/lib/event",
"ace/TextInput",
"ace/KeyBinding",
"ace/Document",
@ -15,7 +16,7 @@ require.def("ace/Editor",
"ace/BackgroundTokenizer",
"ace/Range",
"ace/MEventEmitter"
], function(ace, TextInput, KeyBinding, Document, Search, BackgroundTokenizer, Range, MEventEmitter) {
], function(ace, event, TextInput, KeyBinding, Document, Search, BackgroundTokenizer, Range, MEventEmitter) {
var Editor = function(renderer, doc) {
var container = renderer.getContainerElement();
@ -265,9 +266,12 @@ var Editor = function(renderer, doc) {
this.onMouseDown = function(e) {
var pageX = ace.getDocumentX(e);
var pageY = ace.getDocumentY(e);
var pageX = event.getDocumentX(e);
var pageY = event.getDocumentY(e);
if (event.getButton(e) != 0)
return;
var pos = this.renderer.screenToTextCoordinates(pageX, pageY);
pos.row = Math.max(0, Math.min(pos.row, this.doc.getLength()-1));
@ -281,8 +285,8 @@ var Editor = function(renderer, doc) {
var mousePageX, mousePageY;
var onMouseSelection = function(e) {
mousePageX = ace.getDocumentX(e);
mousePageY = ace.getDocumentY(e);
mousePageX = event.getDocumentX(e);
mousePageY = event.getDocumentY(e);
};
var onMouseSelectionEnd = function() {
@ -317,10 +321,10 @@ var Editor = function(renderer, doc) {
self.renderer.scrollCursorIntoView();
};
ace.capture(this.container, onMouseSelection, onMouseSelectionEnd);
event.capture(this.container, onMouseSelection, onMouseSelectionEnd);
var timerId = setInterval(onSelectionInterval, 20);
return ace.preventDefault(e);
return event.preventDefault(e);
};
this.onMouseDoubleClick = function(e) {
@ -337,7 +341,7 @@ var Editor = function(renderer, doc) {
this.onMouseWheel = function(e) {
this.renderer.scrollBy(e.wheelX, e.wheelY);
return ace.preventDefault(e);
return event.preventDefault(e);
};
this.getCopyText = function() {

View file

@ -54,24 +54,38 @@ require.def("ace/lib/event", ["ace/lib/core"], function(core) {
e.returnValue = false;
};
event.getDocumentX = function(event) {
if (event.clientX) {
event.getDocumentX = function(e) {
if (e.clientX) {
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
return event.clientX + scrollLeft;
return e.clientX + scrollLeft;
} else {
return event.pageX;
return e.pageX;
}
};
event.getDocumentY = function(event) {
if (event.clientY) {
event.getDocumentY = function(e) {
if (e.clientY) {
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
return event.clientY + scrollTop;
return e.clientY + scrollTop;
} else {
return event.pageX;
return e.pageX;
}
};
/**
* @return {Number} 0 for left button, 1 for middle button, 2 for right button
*/
event.getButton = function(e) {
// DOM Event
if (e.preventDefault) {
return e.button;
}
// old IE
else {
return Math.max(e.button - 1, 2)
}
};
if (document.documentElement.setCapture) {
event.capture = function(el, eventHandler, releaseCaptureHandler) {
function onMouseMove(e) {