summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorEugene Mutavchi <emutavchi@productengine.com>2009-11-26 15:45:06 +0200
committerEugene Mutavchi <emutavchi@productengine.com>2009-11-26 15:45:06 +0200
commite6187ecaebcd39fd164f900a15710be6e21ecaf8 (patch)
tree7d1da987c532464485168eaa3f3c5bb5096d7230 /indra
parent8a812495daa52aa9ae092222c23c5f8815929544 (diff)
Fixed low bug EXT-2746 ("All friends" list not scrolled when traversing it with arrow keys)
--HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/llflatlistview.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp
index 8de3a8a96f..26a03e922a 100644
--- a/indra/llui/llflatlistview.cpp
+++ b/indra/llui/llflatlistview.cpp
@@ -554,12 +554,21 @@ BOOL LLFlatListView::handleKeyHere(KEY key, MASK mask)
break;
}
- if ( key == KEY_UP || key == KEY_DOWN )
+ if ( ( key == KEY_UP || key == KEY_DOWN ) && mSelectedItemPairs.size() )
{
- LLRect selcted_rect = getLastSelectedItemRect().stretch(1);
- LLRect visible_rect = getVisibleContentRect();
- if ( !visible_rect.contains (selcted_rect) )
- scrollToShowRect(selcted_rect);
+ LLRect visible_rc = getVisibleContentRect();
+ LLRect selected_rc = getLastSelectedItemRect();
+
+ if ( !visible_rc.contains (selected_rc) )
+ {
+ // But scroll in Items panel coordinates
+ scrollToShowRect(selected_rc);
+ }
+
+ // In case we are in accordion tab notify parent to show selected rectangle
+ LLRect screen_rc;
+ localRectToScreen(selected_rc, &screen_rc);
+ notifyParent(LLSD().insert("scrollToShowRect",screen_rc.getValue()));
handled = TRUE;
}