summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth ProductEngine <slitovchuk@productengine.com>2010-11-03 22:50:09 +0200
committerSeth ProductEngine <slitovchuk@productengine.com>2010-11-03 22:50:09 +0200
commitb66389df893d1e316a5aabc9523c3f46d6f4c6c8 (patch)
tree85b3782e4f6b174126e251dd38f35335269ecf20
parent6a9e70053beaa0fb936482f5594137a8bcdf2f1e (diff)
STORM-536 FIXED scrolling to collapsed accordion tab with keyboard arrows in Places SP->My Landmarks.
- Fixed scrolling to selected item when a folder view receives selection inside an accordion tab while being out of visible scrolling area. - Fixed scrolling to collapsed accordion tab when it receives selection while being out of visible scrolling area.
-rw-r--r--indra/llui/llaccordionctrltab.cpp7
-rw-r--r--indra/newview/llfolderview.cpp2
2 files changed, 8 insertions, 1 deletions
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index 179b32098a..174dba28d0 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -837,8 +837,13 @@ void LLAccordionCtrlTab::showAndFocusHeader()
LLRect screen_rc;
LLRect selected_rc = header->getRect();
localRectToScreen(selected_rc, &screen_rc);
- notifyParent(LLSD().with("scrollToShowRect",screen_rc.getValue()));
+ // This call to notifyParent() is intended to deliver "scrollToShowRect" command
+ // to the parent LLAccordionCtrl so by calling it from the direct parent of this
+ // accordion tab (assuming that the parent is an LLAccordionCtrl) the calls chain
+ // is shortened and messages from inside the collapsed tabs are avoided.
+ // See STORM-536.
+ getParent()->notifyParent(LLSD().with("scrollToShowRect",screen_rc.getValue()));
}
void LLAccordionCtrlTab::storeOpenCloseState()
{
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index c38cd4d090..62ba746a02 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -2429,6 +2429,7 @@ S32 LLFolderView::notify(const LLSD& info)
{
setFocus(true);
selectFirstItem();
+ scrollToShowSelection();
return 1;
}
@@ -2436,6 +2437,7 @@ S32 LLFolderView::notify(const LLSD& info)
{
setFocus(true);
selectLastItem();
+ scrollToShowSelection();
return 1;
}
}