From 6173bd6236dc452b05b6e32258b59c6db05a022d Mon Sep 17 00:00:00 2001 From: Alexander Gavriliuk Date: Thu, 11 Jan 2024 19:19:35 +0100 Subject: SL-20749 Scrolling up by mouse wheel is endless in LLPanelEmojiComplete --- indra/newview/llpanelemojicomplete.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'indra') 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(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() mScrollPos becomes (mTotalEmojis - mVisibleEmojis) + S32 newScrollPos = llmax(0, (S32)mScrollPos + clicks); + mScrollPos = llclamp((size_t)newScrollPos, 0, mTotalEmojis - mVisibleEmojis); mCurSelected = posToIndex(x, y); return TRUE; } -- cgit v1.2.3