diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 2be3b94285..fb1fcb87fe 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -167,7 +167,12 @@ class Status extends ImmutablePureComponent { handleClick = e => { e.preventDefault(); - this.handleHotkeyOpen(e); + + if (e?.button === 0 && !(e?.ctrlKey || e?.metaKey)) { + this._openStatus(); + } else if (e?.button === 1 || (e?.button === 0 && (e?.ctrlKey || e?.metaKey))) { + this._openStatus(true); + } }; handleMouseUp = e => { @@ -275,7 +280,11 @@ class Status extends ImmutablePureComponent { this.props.onMention(this._properStatus().get('account')); }; - handleHotkeyOpen = (e) => { + handleHotkeyOpen = () => { + this._openStatus(); + }; + + _openStatus = (newTab = false) => { if (this.props.onClick) { this.props.onClick(); return; @@ -290,7 +299,7 @@ class Status extends ImmutablePureComponent { const path = `/@${status.getIn(['account', 'acct'])}/${status.get('id')}`; - if (e?.button === 1 || (e?.button === 0 && (e?.ctrlKey || e?.metaKey))) { + if (newTab) { window.open(path, '_blank', 'noopener'); } else { history.push(path);