From d49551998659b9287adf07afb49f73667eb776b7 Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Wed, 3 Jan 2018 11:39:15 +0000 Subject: [PATCH] Fix shift-ctrl-click isOnlyCtrlOrCmdKeyEvent is predicated on !shiftKey, so another function was needed for cases where we ignore other keys --- src/Keyboard.js | 9 +++++++++ src/components/views/elements/TagTile.js | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Keyboard.js b/src/Keyboard.js index 9c872e1c66..8e6983fae5 100644 --- a/src/Keyboard.js +++ b/src/Keyboard.js @@ -68,3 +68,12 @@ export function isOnlyCtrlOrCmdKeyEvent(ev) { return ev.ctrlKey && !ev.altKey && !ev.metaKey && !ev.shiftKey; } } + +export function isCtrlOrCmdKeyEvent(ev) { + const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0; + if (isMac) { + return ev.metaKey && !ev.ctrlKey; + } else { + return ev.ctrlKey && !ev.metaKey; + } +} diff --git a/src/components/views/elements/TagTile.js b/src/components/views/elements/TagTile.js index eb9a5cbdd9..2457bb1760 100644 --- a/src/components/views/elements/TagTile.js +++ b/src/components/views/elements/TagTile.js @@ -20,7 +20,7 @@ import classNames from 'classnames'; import { MatrixClient } from 'matrix-js-sdk'; import sdk from '../../../index'; import dis from '../../../dispatcher'; -import { isOnlyCtrlOrCmdKeyEvent } from '../../../Keyboard'; +import { isCtrlOrCmdKeyEvent } from '../../../Keyboard'; import FlairStore from '../../../stores/FlairStore'; @@ -76,7 +76,7 @@ export default React.createClass({ dis.dispatch({ action: 'select_tag', tag: this.props.tag, - ctrlOrCmdKey: isOnlyCtrlOrCmdKeyEvent(e), + ctrlOrCmdKey: isCtrlOrCmdKeyEvent(e), shiftKey: e.shiftKey, }); },