summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew S <matthewsot@outlook.com>2017-05-20 11:01:50 -0700
committerMatthew S <matthewsot@outlook.com>2017-05-20 11:01:50 -0700
commit45e3006e8b5a99a965cd16bd35e8a47202c1124f (patch)
tree9ca0ffb9a3202598ed2f6d8db65f9fff36af5508
parentd77d80a1d7bd7ec4333d0c658332c121d7d91390 (diff)
toggle bold/subscript work now
Should fix issue 1
-rw-r--r--docs.js69
1 files changed, 43 insertions, 26 deletions
diff --git a/docs.js b/docs.js
index 4ce3c5a..09df9f3 100644
--- a/docs.js
+++ b/docs.js
@@ -53,8 +53,7 @@ docs.getSelectionWithObserver = function (callback, defaultToParagraph, getRaw)
docs.getSelection = docs.getSelectionWithObserver;
docs.runWithCreateKeyboard = function (strToRun, funcName, params) {
- var toRun = "var utils = {};utils.createKeyboardEvent = " + utils.createKeyboardEvent.toString() + ";";
- var toRun = "var utils = {};utils.createKeyboardEvent = " + docs.utils.createKeyboardEvent.toString() + ";";
+ var toRun = "var docs = {'utils': {}};docs.utils.createKeyboardEvent = " + docs.utils.createKeyboardEvent.toString() + ";";
toRun += strToRun;
@@ -64,10 +63,6 @@ docs.runWithCreateKeyboard = function (strToRun, funcName, params) {
};
docs.insertText = function (toInsert) {
- /*function coolerDoInsert(toInsert) {
- var e = new ClipboardEvent('paste', { dataType: 'text/plain', data: toInsert });
- document.getElementsByClassName("docs-texteventtarget-iframe")[0].contentWindow.document.querySelector("[contenteditable=\"true\"]").dispatchEvent(e);
- }*/
function doInsertText(toInsert) {
for (var i = 0; i < toInsert.length; i++) {
var key = toInsert[i];
@@ -132,7 +127,7 @@ docs.backspace = function (counts) {
var secondsTimeout = secondsSinceLastBackspace < 1 ? (1 - secondsSinceLastBackspace) : 0;
- var toRun = "var utils = {};utils.createKeyboardEvent = " + docs.utils.createKeyboardEvent.toString() + ";";
+ var toRun = "var docs = {'utils': {}};docs.utils.createKeyboardEvent = " + docs.utils.createKeyboardEvent.toString() + ";";
toRun += doBackspace.toString();
@@ -161,7 +156,7 @@ docs.setColor = function (colorSelector) {
el.dispatchEvent(new MouseEvent("mouseleave", { bubbles: true }));
};
-docs.toggleSubscript = function () {
+docs.ctrlKeyShortcut = function (secondKey) {
function _doToggleSubscript() {
var ctrl = {
"key": "Control",
@@ -174,44 +169,66 @@ docs.toggleSubscript = function () {
"which": 17,
"ctrlKey": true
};
- var comma = {
- "key": ",",
- "charCode": 0,
- "keyCode": 188,
- "bubbles": true,
- "cancelable": true,
- "code": 188,
- "pageY": 7,
- "which": 188,
- "ctrlKey": true
- };
var ctrlDown = docs.utils.createKeyboardEvent("keydown", ctrl);
- var commaDown = docs.utils.createKeyboardEvent("keydown", comma);
- var commaUp = docs.utils.createKeyboardEvent("keyup", comma);
- var commaPress = docs.utils.createKeyboardEvent("keypress", comma);
+ var secondDown = docs.utils.createKeyboardEvent("keydown", secondKey);
+ var secondUp = docs.utils.createKeyboardEvent("keyup", secondKey);
+ var secondPress = docs.utils.createKeyboardEvent("keypress", secondKey);
var ctrlUp = docs.utils.createKeyboardEvent("keydown", ctrl);
var ctrlPress = docs.utils.createKeyboardEvent("keypress", ctrl);
var el = document.getElementsByClassName("docs-texteventtarget-iframe")[0].contentWindow.document.querySelector("[contenteditable=\"true\"]");
el.dispatchEvent(ctrlDown);
- el.dispatchEvent(commaDown);
- el.dispatchEvent(commaUp);
- el.dispatchEvent(commaPress);
+ el.dispatchEvent(secondDown);
+ el.dispatchEvent(secondUp);
+ el.dispatchEvent(secondPress);
el.dispatchEvent(ctrlUp);
el.dispatchEvent(ctrlPress);
}
if (docs.platform !== "userscript") {
- docs.runWithCreateKeyboard(_doToggleSubscript.toString(), "_doToggleSubscript", "");
+ function escape_quotes(str) {
+ //TODO: something that's not practically guaranteed to break here
+ return str.replace(/\\/g, "\\\\").replace(/\"/g, "\\\"")
+ }
+ docs.runWithCreateKeyboard("secondKey=JSON.parse(\"" + escape_quotes(JSON.stringify(secondKey)) + "\");" + _doToggleSubscript.toString(), "_doToggleSubscript", "");
return;
} else {
_doToggleSubscript();
}
};
+docs.toggleSubscript = function () {
+ var comma = {
+ "key": ",",
+ "charCode": 0,
+ "keyCode": 188,
+ "bubbles": true,
+ "cancelable": true,
+ "code": 188,
+ "pageY": 7,
+ "which": 188,
+ "ctrlKey": true
+ };
+ docs.ctrlKeyShortcut(comma);
+};
+docs.toggleBold = function () {
+ var b = {
+ "key": "b",
+ "charCode": 0,
+ "keyCode": 66,
+ "bubbles": true,
+ "cancelable": true,
+ "code": 66,
+ "pageY": 7,
+ "which": 66,
+ "ctrlKey": true
+ };
+ docs.ctrlKeyShortcut(b);
+};
+
docs.getCurrentParagraphText = function(callback) {
//Set up an observer to observe all the paragraphs
var calledAlready = false;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback