summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/fg/js/display-frame.js27
-rw-r--r--ext/fg/js/driver.js4
-rw-r--r--ext/manifest.json3
-rw-r--r--ext/mixed/js/display.js3
4 files changed, 36 insertions, 1 deletions
diff --git a/ext/fg/js/display-frame.js b/ext/fg/js/display-frame.js
index 59032d0c..f6f7683e 100644
--- a/ext/fg/js/display-frame.js
+++ b/ext/fg/js/display-frame.js
@@ -51,6 +51,10 @@ window.displayFrame = new class extends Display {
window.parent.postMessage('popupClose', '*');
}
+ selectionCopy() {
+ window.parent.postMessage('selectionCopy', '*');
+ }
+
showOrphaned() {
$('#content').hide();
$('#orphan').show();
@@ -77,4 +81,27 @@ window.displayFrame = new class extends Display {
handler(params);
}
}
+
+ onKeyDown(e) {
+ if (super.onKeyDown(e)) {
+ return true;
+ }
+
+ const handlers = {
+ 67: /* c */ () => {
+ if (e.ctrlKey) {
+ this.selectionCopy();
+ return true;
+ }
+ }
+ };
+
+ const handler = handlers[e.keyCode];
+ if (handler && handler()) {
+ e.preventDefault();
+ return true;
+ }
+
+ return false;
+ }
};
diff --git a/ext/fg/js/driver.js b/ext/fg/js/driver.js
index 5191f18d..d4cb1532 100644
--- a/ext/fg/js/driver.js
+++ b/ext/fg/js/driver.js
@@ -106,6 +106,10 @@ window.driver = new class {
const handlers = {
popupClose: () => {
this.searchClear();
+ },
+
+ selectionCopy: () => {
+ document.execCommand('copy');
}
};
diff --git a/ext/manifest.json b/ext/manifest.json
index 83df26e4..3939ae21 100644
--- a/ext/manifest.json
+++ b/ext/manifest.json
@@ -29,7 +29,8 @@
},
"permissions": [
"<all_urls>",
- "storage"
+ "storage",
+ "clipboardWrite"
],
"commands": {
"toggle": {
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js
index 9738319a..f950f0f0 100644
--- a/ext/mixed/js/display.js
+++ b/ext/mixed/js/display.js
@@ -301,7 +301,10 @@ class Display {
const handler = handlers[e.keyCode];
if (handler && handler()) {
e.preventDefault();
+ return true;
}
+
+ return false;
}
sourceBack() {