From 14ee822b0c5390fab8f785e50e2bcbc70e2bfa4d Mon Sep 17 00:00:00 2001 From: Jonas Schwabe Date: Sun, 4 Sep 2016 21:05:28 +0200 Subject: [PATCH 1/2] Use electron-context-menu insted of bare contextmenu. Fixes #123 --- CHANGELOG.md | 1 + src/browser/index.jsx | 10 ++++------ src/browser/settings.jsx | 8 +++----- src/package.json | 1 + 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccb4f081..45309506 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Release date: TBD ### Improvements #### All platforms +- Use `electron-context-menu` to have a working and consistent context menu - Show current channel/team in window title - Changed display of unread messages on the team tabbar, they are now shown as bold text - Reload only the selected tab and keep its URL on "Reload" and "Clear Cache and Reload". diff --git a/src/browser/index.jsx b/src/browser/index.jsx index c7871cf9..a46cf2d0 100644 --- a/src/browser/index.jsx +++ b/src/browser/index.jsx @@ -395,6 +395,10 @@ var MattermostView = React.createClass({ } }); } + + require('electron-context-menu')({ + window: webview + }); }); webview.addEventListener('ipc-message', function(event) { @@ -509,12 +513,6 @@ if (config.teams.length === 0) { window.location = 'settings.html'; } -var contextMenu = require('./menus/context'); -var menu = contextMenu.createDefault(); -window.addEventListener('contextmenu', function(e) { - menu.popup(remote.getCurrentWindow()); -}, false); - var showUnreadBadgeWindows = function(unreadCount, mentionCount) { const badge = require('./js/badge'); const sendBadge = function(dataURL, description) { diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx index 62651296..bf10d1f2 100644 --- a/src/browser/settings.jsx +++ b/src/browser/settings.jsx @@ -480,11 +480,9 @@ var TeamListItemNew = React.createClass({ var configFile = remote.getGlobal('config-file'); -var contextMenu = require('./menus/context'); -var menu = contextMenu.createDefault(); -window.addEventListener('contextmenu', function(e) { - menu.popup(remote.getCurrentWindow()); -}, false); +require('electron-context-menu')({ + window: remote.getCurrentWindow() +}); ReactDOM.render( , diff --git a/src/package.json b/src/package.json index 215326b2..a12f7602 100644 --- a/src/package.json +++ b/src/package.json @@ -16,6 +16,7 @@ "dependencies": { "auto-launch": "^2.1.0", "bootstrap": "^3.3.7", + "electron-context-menu": "^0.5.0", "electron-squirrel-startup": "^1.0.0", "os-locale": "^1.4.0", "react": "^15.3.0", From af7dffbe3b12ba28ae09f913f03b534402ece5f5 Mon Sep 17 00:00:00 2001 From: Jonas Schwabe Date: Sun, 4 Sep 2016 21:11:02 +0200 Subject: [PATCH 2/2] Cleanup, remvoe old menu code --- src/browser/menus/context.js | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 src/browser/menus/context.js diff --git a/src/browser/menus/context.js b/src/browser/menus/context.js deleted file mode 100644 index 791ab3bd..00000000 --- a/src/browser/menus/context.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -const remote = require('electron').remote; -const Menu = remote.Menu; -const MenuItem = remote.MenuItem; - -var createDefault = function() { - var menu = new Menu(); - menu.append(new MenuItem({ - role: 'cut' - })); - menu.append(new MenuItem({ - role: 'copy' - })); - menu.append(new MenuItem({ - role: 'paste' - })); - menu.append(new MenuItem({ - role: 'selectall' - })); - return menu; -}; - -module.exports = { - createDefault: createDefault -};