summaryrefslogtreecommitdiff
path: root/ext/fg/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fg/js')
-rw-r--r--ext/fg/js/display-frame.js22
-rw-r--r--ext/fg/js/driver.js4
2 files changed, 26 insertions, 0 deletions
diff --git a/ext/fg/js/display-frame.js b/ext/fg/js/display-frame.js
index 59032d0c..9fd09e74 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,22 @@ window.displayFrame = new class extends Display {
handler(params);
}
}
+
+ onKeyDown(e) {
+ const handlers = {
+ 67: /* c */ () => {
+ if (e.ctrlKey && window.getSelection().toString() === '') {
+ this.selectionCopy();
+ return true;
+ }
+ }
+ };
+
+ const handler = handlers[e.keyCode];
+ if (handler && handler()) {
+ e.preventDefault();
+ } else {
+ super.onKeyDown(e);
+ }
+ }
};
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');
}
};