From ca903c5daca4349efcd223aa880cd4b681eed518 Mon Sep 17 00:00:00 2001 From: meriadec Date: Tue, 10 Jul 2018 00:16:52 +0200 Subject: [PATCH] Add context menu - Allows cut/copy/paste with mouse - `Inspect element` in dev closes #978 --- package.json | 1 + src/main/app.js | 14 ++++++++++++++ yarn.lock | 51 ++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 06ad81ff..bac08f54 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "debug": "^3.1.0", "downshift": "^1.31.16", "eip55": "^1.0.3", + "electron-context-menu": "^0.10.0", "electron-store": "^1.3.0", "electron-updater": "^2.21.8", "ethereumjs-tx": "^1.3.4", diff --git a/src/main/app.js b/src/main/app.js index 4ae2099a..18a7b839 100644 --- a/src/main/app.js +++ b/src/main/app.js @@ -35,6 +35,20 @@ const { UPGRADE_EXTENSIONS, ELECTRON_WEBPACK_WDS_PORT, DEV_TOOLS, DEV_TOOLS_MODE const devTools = __DEV__ || DEV_TOOLS +// context menu - see #978 +require('electron-context-menu')({ + showInspectElement: __DEV__ || DEV_TOOLS, + showCopyImageAddress: false, + // TODO: i18n for labels + labels: { + cut: 'Cut', + copy: 'Copy', + paste: 'Paste', + copyLink: 'Copy Link', + inspect: 'Inspect element', + }, +}) + const getWindowPosition = (height, width, display = screen.getPrimaryDisplay()) => { const { bounds } = display diff --git a/yarn.lock b/yarn.lock index c6e72999..7c6fa13a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5794,6 +5794,13 @@ electron-builder@20.14.7: update-notifier "^2.5.0" yargs "^11.0.0" +electron-context-menu@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/electron-context-menu/-/electron-context-menu-0.10.0.tgz#97fce2b805e03ac2b1dae11eb6a68b064b78d633" + dependencies: + electron-dl "^1.2.0" + electron-is-dev "^0.3.0" + electron-devtools-installer@^2.2.3, electron-devtools-installer@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz#261a50337e37121d338b966f07922eb4939a8763" @@ -5803,6 +5810,14 @@ electron-devtools-installer@^2.2.3, electron-devtools-installer@^2.2.4: rimraf "^2.5.2" semver "^5.3.0" +electron-dl@^1.2.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/electron-dl/-/electron-dl-1.12.0.tgz#328c7f12d3e458ed4ddc773d8ffc28d59ab35d2e" + dependencies: + ext-name "^5.0.0" + pupa "^1.0.0" + unused-filename "^1.0.0" + electron-download-tf@4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/electron-download-tf/-/electron-download-tf-4.3.4.tgz#b03740b2885aa2ad3f8784fae74df427f66d5165" @@ -6543,6 +6558,19 @@ express@^4.16.2, express@^4.16.3: utils-merge "1.0.1" vary "~1.1.2" +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -9654,7 +9682,7 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.34.0 < 2": +"mime-db@>= 1.34.0 < 2", mime-db@^1.28.0: version "1.34.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.34.0.tgz#452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a" @@ -9809,6 +9837,10 @@ mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdi dependencies: minimist "0.0.8" +modify-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1" + moment@^2.11.2, moment@^2.21.0, moment@^2.22.2: version "2.22.2" resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" @@ -11500,6 +11532,10 @@ punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" +pupa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-1.0.0.tgz#9a9568a5af7e657b8462a6e9d5328743560ceff6" + pushdata-bitcoin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz#15931d3cd967ade52206f523aa7331aef7d43af7" @@ -13141,6 +13177,12 @@ socks@~2.2.0: ip "^1.1.5" smart-buffer "^4.0.1" +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + dependencies: + sort-keys "^1.0.0" + sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -14185,6 +14227,13 @@ untildify@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" +unused-filename@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unused-filename/-/unused-filename-1.0.0.tgz#d340880f71ae2115ebaa1325bef05cc6684469c6" + dependencies: + modify-filename "^1.1.0" + path-exists "^3.0.0" + unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"