summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content.js63
1 files changed, 36 insertions, 27 deletions
diff --git a/content.js b/content.js
index e3ac0998..d87589ac 100644
--- a/content.js
+++ b/content.js
@@ -1,45 +1,54 @@
/*
- * Copyright (c) 2016 Alex Yatskov <alex@foosoft.net>
+ * Copyright (C) 2016 Alex Yatskov <alex@foosoft.net>
* Author: Alex Yatskov <alex@foosoft.net>
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
*
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-function getText(e, length) {
- let range = document.caretRangeFromPoint(e.clientX, e.clientY);
- let node = range.startContainer;
+function getRangeAtCursor(e, lookAhead) {
+ const range = document.caretRangeFromPoint(e.clientX, e.clientY);
+ if (range === null) {
+ return null
+ }
+
+ const node = range.startContainer;
if (node.nodeType !== 3 /* TEXT_NODE */) {
- return '';
+ return null;
}
- let scan = Math.min(- range.startOffset, length);
- console.log(scan);
- range.setEnd(node, range.startOffset + scan);
+ const offset = range.startOffset;
+ const length = Math.min(node.length - offset, lookAhead);
- return range.toString();
+ range.setEnd(node, offset + length);
+ return range;
}
-function onMouseMove(e) {
- const text = getText(e);
- if (text !== '') {
- console.log(text);
+
+function onMouseDown(e) {
+ const range = getRangeAtCursor(e, 20);
+ if (range === null) {
+ return;
}
+
+ const selection = window.getSelection();
+ selection.removeAllRanges();
+ selection.addRange(range);
+
+ e.preventDefault();
+
+ console.log(range.toString());
}