mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Fixed right-clicking mentions no longer working. (#4751)
* fix up rightclicking mentions * changelog * Merge changelog entries other PR was merged after 2.4.4
This commit is contained in:
parent
222b3da79e
commit
b98be3b0f3
|
@ -19,6 +19,7 @@
|
||||||
- Minor: Stream status requests are now batched. (#4713)
|
- Minor: Stream status requests are now batched. (#4713)
|
||||||
- Minor: Added `/c2-theme-autoreload` command to automatically reload a custom theme. This is useful for when you're developing your own theme. (#4718)
|
- Minor: Added `/c2-theme-autoreload` command to automatically reload a custom theme. This is useful for when you're developing your own theme. (#4718)
|
||||||
- Minor: Show channel point redemptions without messages in usercard. (#4557)
|
- Minor: Show channel point redemptions without messages in usercard. (#4557)
|
||||||
|
- Minor: Allow for customizing the behavior of `Right Click`ing of usernames. (#4622, #4751)
|
||||||
- Bugfix: Increased amount of blocked users loaded from 100 to 1,000. (#4721)
|
- Bugfix: Increased amount of blocked users loaded from 100 to 1,000. (#4721)
|
||||||
- Bugfix: Fixed generation of crashdumps by the browser-extension process when the browser was closed. (#4667)
|
- Bugfix: Fixed generation of crashdumps by the browser-extension process when the browser was closed. (#4667)
|
||||||
- Bugfix: Fix spacing issue with mentions inside RTL text. (#4677)
|
- Bugfix: Fix spacing issue with mentions inside RTL text. (#4677)
|
||||||
|
@ -54,7 +55,6 @@
|
||||||
- Minor: Added a Send button in the input box so you can click to send a message. This is disabled by default and can be enabled with the "Show send message button" setting. (#4607)
|
- Minor: Added a Send button in the input box so you can click to send a message. This is disabled by default and can be enabled with the "Show send message button" setting. (#4607)
|
||||||
- Minor: Improved error messages when the updater fails a download. (#4594)
|
- Minor: Improved error messages when the updater fails a download. (#4594)
|
||||||
- Minor: Added `/shield` and `/shieldoff` commands to toggle shield mode. (#4580)
|
- Minor: Added `/shield` and `/shieldoff` commands to toggle shield mode. (#4580)
|
||||||
- Minor: Allow for customizing the behavior of `Right Click`ing of usernames. (#4622)
|
|
||||||
- Bugfix: Fixed the menu warping on macOS on Qt6. (#4595)
|
- Bugfix: Fixed the menu warping on macOS on Qt6. (#4595)
|
||||||
- Bugfix: Fixed link tooltips not showing unless the thumbnail setting was enabled. (#4597)
|
- Bugfix: Fixed link tooltips not showing unless the thumbnail setting was enabled. (#4597)
|
||||||
- Bugfix: Domains starting with `http` are now parsed as links again. (#4598)
|
- Bugfix: Domains starting with `http` are now parsed as links again. (#4598)
|
||||||
|
|
|
@ -2104,8 +2104,15 @@ void ChannelView::handleMouseClick(QMouseEvent *event,
|
||||||
|
|
||||||
if (link.type == Link::UserInfo)
|
if (link.type == Link::UserInfo)
|
||||||
{
|
{
|
||||||
if (hoveredElement->getFlags().has(
|
// This is terrible because it FPs on messages where the
|
||||||
MessageElementFlag::Username))
|
// user mentions themselves
|
||||||
|
bool canReply =
|
||||||
|
QString::compare(link.value,
|
||||||
|
layout->getMessage()->loginName,
|
||||||
|
Qt::CaseInsensitive) == 0;
|
||||||
|
UsernameRightClickBehavior action =
|
||||||
|
UsernameRightClickBehavior::Mention;
|
||||||
|
if (canReply)
|
||||||
{
|
{
|
||||||
Qt::KeyboardModifier userSpecifiedModifier =
|
Qt::KeyboardModifier userSpecifiedModifier =
|
||||||
getSettings()->usernameRightClickModifier;
|
getSettings()->usernameRightClickModifier;
|
||||||
|
@ -2124,7 +2131,6 @@ void ChannelView::handleMouseClick(QMouseEvent *event,
|
||||||
Qt::KeyboardModifiers modifiers{userSpecifiedModifier};
|
Qt::KeyboardModifiers modifiers{userSpecifiedModifier};
|
||||||
auto isModifierHeld = event->modifiers() == modifiers;
|
auto isModifierHeld = event->modifiers() == modifiers;
|
||||||
|
|
||||||
UsernameRightClickBehavior action{};
|
|
||||||
if (isModifierHeld)
|
if (isModifierHeld)
|
||||||
{
|
{
|
||||||
action = getSettings()
|
action = getSettings()
|
||||||
|
@ -2134,44 +2140,43 @@ void ChannelView::handleMouseClick(QMouseEvent *event,
|
||||||
{
|
{
|
||||||
action = getSettings()->usernameRightClickBehavior;
|
action = getSettings()->usernameRightClickBehavior;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case UsernameRightClickBehavior::Mention: {
|
case UsernameRightClickBehavior::Mention: {
|
||||||
if (split == nullptr)
|
if (split == nullptr)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// Insert @username into split input
|
|
||||||
const bool commaMention =
|
|
||||||
getSettings()->mentionUsersWithComma;
|
|
||||||
const bool isFirstWord =
|
|
||||||
split->getInput().isEditFirstWord();
|
|
||||||
auto userMention = formatUserMention(
|
|
||||||
link.value, isFirstWord, commaMention);
|
|
||||||
insertText("@" + userMention + " ");
|
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case UsernameRightClickBehavior::Reply: {
|
// Insert @username into split input
|
||||||
// Start a new reply if matching user's settings
|
const bool commaMention =
|
||||||
this->setInputReply(layout->getMessagePtr());
|
getSettings()->mentionUsersWithComma;
|
||||||
}
|
const bool isFirstWord =
|
||||||
break;
|
split->getInput().isEditFirstWord();
|
||||||
|
auto userMention = formatUserMention(
|
||||||
case UsernameRightClickBehavior::Ignore:
|
link.value, isFirstWord, commaMention);
|
||||||
break;
|
insertText("@" + userMention + " ");
|
||||||
|
|
||||||
default: {
|
|
||||||
qCWarning(chatterinoCommon)
|
|
||||||
<< "unhandled or corrupted "
|
|
||||||
"UsernameRightClickBehavior value in "
|
|
||||||
"ChannelView::handleMouseClick:"
|
|
||||||
<< action;
|
|
||||||
}
|
|
||||||
break; // unreachable
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case UsernameRightClickBehavior::Reply: {
|
||||||
|
// Start a new reply if matching user's settings
|
||||||
|
this->setInputReply(layout->getMessagePtr());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case UsernameRightClickBehavior::Ignore:
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: {
|
||||||
|
qCWarning(chatterinoCommon)
|
||||||
|
<< "unhandled or corrupted "
|
||||||
|
"UsernameRightClickBehavior value in "
|
||||||
|
"ChannelView::handleMouseClick:"
|
||||||
|
<< action;
|
||||||
|
}
|
||||||
|
break; // unreachable
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue