Merge pull request #1237 from danyaPostfactum/miscfixes

classList usage in dom.{add|remove|toggle}CssClass + minor changes
This commit is contained in:
nightwing 2013-02-22 18:40:50 +04:00
commit f2d6d7d6c9
10 changed files with 54 additions and 75 deletions

View file

@ -406,7 +406,9 @@ bindCheckbox("highlight_token", function(checked) {
/************** dragover ***************************/
event.addListener(container, "dragover", function(e) {
return event.preventDefault(e);
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return event.preventDefault(e);
});
event.addListener(container, "drop", function(e) {

View file

@ -19,6 +19,7 @@ body {
#logo {
padding: 15px;
margin-left: 70px;
border: none;
}
#editor-container {

View file

@ -252,7 +252,7 @@
.ace_gutter-tooltip {
background-color: #FFF;
background-image: -webkit-linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));
background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));
background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));
border: 1px solid gray;
border-radius: 1px;
@ -342,9 +342,7 @@
-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
}
.ace_fold-widget.ace_invalid {
background-color: #FFB4B4;
border-color: #DE5555;

View file

@ -34,7 +34,6 @@ define(function(require, exports, module) {
var config = require("./config");
var oop = require("./lib/oop");
var lang = require("./lib/lang");
var net = require("./lib/net");
var EventEmitter = require("./lib/event_emitter").EventEmitter;
var Selection = require("./selection").Selection;
var TextMode = require("./mode/text").Mode;

View file

@ -39,15 +39,6 @@ exports.createElement = function(tag, ns) {
document.createElement(tag);
};
exports.setText = function(elem, text) {
if (elem.innerText !== undefined) {
elem.innerText = text;
}
if (elem.textContent !== undefined) {
elem.textContent = text;
}
};
exports.hasCssClass = function(el, name) {
var classes = el.className.split(/\s+/g);
return classes.indexOf(name) !== -1;
@ -143,7 +134,7 @@ exports.importCssString = function importCssString(cssText, id, doc) {
if (id)
style.id = id;
var head = doc.getElementsByTagName("head")[0] || doc.documentElement;
var head = doc.head || doc.getElementsByTagName("head")[0] || doc.documentElement;
head.appendChild(style);
}
};
@ -156,7 +147,7 @@ exports.importCssStylsheet = function(uri, doc) {
link.rel = 'stylesheet';
link.href = uri;
var head = doc.getElementsByTagName("head")[0] || doc.documentElement;
var head = doc.head || doc.getElementsByTagName("head")[0] || doc.documentElement;
head.appendChild(link);
}
};
@ -259,22 +250,24 @@ exports.setInnerHtml = function(el, innerHtml) {
return element;
};
exports.setInnerText = function(el, innerText) {
var document = el.ownerDocument;
if (document.body && "textContent" in document.body)
if ("textContent" in document.documentElement) {
exports.setInnerText = function(el, innerText) {
el.textContent = innerText;
else
el.innerText = innerText;
};
};
exports.getInnerText = function(el) {
var document = el.ownerDocument;
if (document.body && "textContent" in document.body)
exports.getInnerText = function(el) {
return el.textContent;
else
return el.innerText || el.textContent || "";
};
};
}
else {
exports.setInnerText = function(el, innerText) {
el.innerText = innerText;
};
exports.getInnerText = function(el) {
return el.innerText;
};
}
exports.getParentWindow = function(document) {
return document.defaultView || document.parentWindow;

View file

@ -301,10 +301,10 @@ if (window.postMessage && !useragent.isOldIE) {
exports.nextFrame = window.requestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame;
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame;
if (exports.nextFrame)
exports.nextFrame = exports.nextFrame.bind(window);

View file

@ -8,12 +8,10 @@
define(function(require, exports, module) {
"use strict";
var useragent = require("./useragent");
exports.get = function (url, callback) {
var xhr = exports.createXhr();
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = function (evt) {
xhr.onreadystatechange = function () {
//Do not explicitly handle errors, those should be
//visible via console output in the browser.
if (xhr.readyState === 4) {
@ -23,47 +21,19 @@ exports.get = function (url, callback) {
xhr.send(null);
};
var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
exports.createXhr = function() {
//Would love to dump the ActiveX crap in here. Need IE 6 to die first.
var xhr, i, progId;
if (typeof XMLHttpRequest !== "undefined") {
return new XMLHttpRequest();
} else {
for (i = 0; i < 3; i++) {
progId = progIds[i];
try {
xhr = new ActiveXObject(progId);
} catch (e) {}
if (xhr) {
progIds = [progId]; // so faster next time
break;
}
}
}
if (!xhr) {
throw new Error("createXhr(): XMLHttpRequest not available");
}
return xhr;
};
exports.loadScript = function(path, callback) {
var head = document.getElementsByTagName('head')[0];
var head = document.head || document.getElementsByTagName('head')[0];
var s = document.createElement('script');
s.src = path;
head.appendChild(s);
if (useragent.isOldIE)
if (s.onload !== undefined)
s.onload = callback;
else
s.onreadystatechange = function () {
this.readyState == 'loaded' && callback();
};
else
s.onload = callback;
};
});

View file

@ -70,11 +70,19 @@ var CssBehaviour = function () {
this.add("colon", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected === ':') {
var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.end.column, range.end.column + 1);
if (rightChar === ';') {
range.end.column ++;
return range;
var cursor = editor.getCursorPosition();
var iterator = new TokenIterator(session, cursor.row, cursor.column);
var token = iterator.getCurrentToken();
if (token && token.value.match(/\s+/)) {
token = iterator.stepBackward();
}
if (token && token.type === 'support.type') {
var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.end.column, range.end.column + 1);
if (rightChar === ';') {
range.end.column ++;
return range;
}
}
}
});

View file

@ -43,6 +43,9 @@ var DragdropHandler = function(mouseHandler) {
event.addListener(mouseTarget, "dragenter", function(e) {
if (editor.getReadOnly())
return;
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return;
counter++;
if (!dragSelectionMarker) {
range = editor.getSelectionRange();
@ -59,6 +62,9 @@ var DragdropHandler = function(mouseHandler) {
event.addListener(mouseTarget, "dragover", function(e) {
if (editor.getReadOnly())
return;
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return;
x = e.clientX;
y = e.clientY;
return event.preventDefault(e);
@ -73,6 +79,9 @@ var DragdropHandler = function(mouseHandler) {
event.addListener(mouseTarget, "dragleave", function(e) {
if (editor.getReadOnly())
return;
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return;
counter--;
if (counter > 0)
return;

View file

@ -36,7 +36,6 @@ var dom = require("./lib/dom");
var event = require("./lib/event");
var useragent = require("./lib/useragent");
var config = require("./config");
var net = require("./lib/net");
var GutterLayer = require("./layer/gutter").Gutter;
var MarkerLayer = require("./layer/marker").Marker;
var TextLayer = require("./layer/text").Text;