summaryrefslogtreecommitdiff
path: root/indra/llcommon/llkeybind.cpp
diff options
context:
space:
mode:
authorandreykproductengine <andreykproductengine@lindenlab.com>2019-10-03 22:45:29 +0300
committerandreykproductengine <andreykproductengine@lindenlab.com>2019-10-03 22:45:29 +0300
commit6aab234105d6eed022afbea388ae21530c7e99dd (patch)
treeba193253fe1902967e1fff56321b512a9c5b7f20 /indra/llcommon/llkeybind.cpp
parentb8c5ae8d8fcf9219112c4ab48233615732737e44 (diff)
SL-6109 Remade 'ignore' list processing, renamed and reformed keybindings
Diffstat (limited to 'indra/llcommon/llkeybind.cpp')
-rw-r--r--indra/llcommon/llkeybind.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/indra/llcommon/llkeybind.cpp b/indra/llcommon/llkeybind.cpp
index ff88a9c9aa..46a3230240 100644
--- a/indra/llcommon/llkeybind.cpp
+++ b/indra/llcommon/llkeybind.cpp
@@ -92,14 +92,11 @@ LLSD LLKeyData::asLLSD() const
LLSD data;
data["mouse"] = (LLSD::Integer)mMouse;
data["key"] = (LLSD::Integer)mKey;
+ data["mask"] = (LLSD::Integer)mMask;
if (mIgnoreMasks)
{
data["ignore_accelerators"] = (LLSD::Boolean)mIgnoreMasks;
}
- else
- {
- data["mask"] = (LLSD::Integer)mMask;
- }
return data;
}
@@ -147,7 +144,7 @@ bool LLKeyData::canHandle(const LLKeyData& data) const
{
if (data.mKey == mKey
&& data.mMouse == mMouse
- && (mIgnoreMasks || data.mMask == mMask))
+ && ((mIgnoreMasks && (data.mMask & mMask) == data.mMask) || data.mMask == mMask))
{
return true;
}
@@ -158,7 +155,7 @@ bool LLKeyData::canHandle(EMouseClickType mouse, KEY key, MASK mask) const
{
if (mouse == mMouse
&& key == mKey
- && (mIgnoreMasks || mask == mMask))
+ && ((mIgnoreMasks && (mask & mMask) == mask) || mask == mMask))
{
return true;
}