summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAlexander Gavriliuk <alexandrgproductengine@lindenlab.com>2024-01-11 19:19:35 +0100
committerGuru <alexandrgproductengine@lindenlab.com>2024-01-11 19:30:18 +0100
commit6173bd6236dc452b05b6e32258b59c6db05a022d (patch)
treec0cc1363c20b258ba1b98f4828e6c8927475c893 /indra
parent82774d2db9649f2df0993604d0a1751ef9a61df2 (diff)
SL-20749 Scrolling up by mouse wheel is endless in LLPanelEmojiComplete
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llpanelemojicomplete.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/indra/newview/llpanelemojicomplete.cpp b/indra/newview/llpanelemojicomplete.cpp
index 9bfe04fc31..46f455aede 100644
--- a/indra/newview/llpanelemojicomplete.cpp
+++ b/indra/newview/llpanelemojicomplete.cpp
@@ -264,7 +264,11 @@ BOOL LLPanelEmojiComplete::handleScrollWheel(S32 x, S32 y, S32 clicks)
if (mTotalEmojis > mVisibleEmojis)
{
- mScrollPos = llclamp<size_t>(mScrollPos + clicks, 0, mTotalEmojis - mVisibleEmojis);
+ // In case of wheel up (clicks < 0) we shouldn't subtract more than value of mScrollPos
+ // Example: if mScrollPos = 0, clicks = -1 then (mScrollPos + clicks) becomes SIZE_MAX
+ // As a result of llclamp<size_t>() mScrollPos becomes (mTotalEmojis - mVisibleEmojis)
+ S32 newScrollPos = llmax(0, (S32)mScrollPos + clicks);
+ mScrollPos = llclamp<size_t>((size_t)newScrollPos, 0, mTotalEmojis - mVisibleEmojis);
mCurSelected = posToIndex(x, y);
return TRUE;
}