summaryrefslogtreecommitdiff
path: root/indra/newview/llfolderviewitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfolderviewitem.cpp')
-rw-r--r--indra/newview/llfolderviewitem.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index ea1275aad1..879b33e571 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -129,6 +129,8 @@ LLFolderViewItem::LLFolderViewItem(LLFolderViewItem::Params p)
mLabel(p.name),
mRoot(p.root),
mCreationDate(p.creation_date),
+ mIcon(p.icon),
+ mIconOpen(p.icon_open),
mListener(p.listener),
mArrowImage(p.folder_arrow_image),
mBoxImage(p.selection_image)
@@ -602,6 +604,11 @@ BOOL LLFolderViewItem::handleRightMouseDown( S32 x, S32 y, MASK mask )
BOOL LLFolderViewItem::handleMouseDown( S32 x, S32 y, MASK mask )
{
+ if (LLView::childrenHandleMouseDown(x, y, mask))
+ {
+ return TRUE;
+ }
+
// No handler needed for focus lost since this class has no
// state that depends on it.
gFocusMgr.setMouseCapture( this );
@@ -721,6 +728,11 @@ BOOL LLFolderViewItem::handleScrollWheel(S32 x, S32 y, S32 clicks)
BOOL LLFolderViewItem::handleMouseUp( S32 x, S32 y, MASK mask )
{
+ if (LLView::childrenHandleMouseUp(x, y, mask))
+ {
+ return TRUE;
+ }
+
// if mouse hasn't moved since mouse down...
if ( pointInView(x, y) && mSelectPending )
{
@@ -897,11 +909,15 @@ void LLFolderViewItem::draw()
mDragAndDropTarget = FALSE;
}
-
- if(mIcon)
- {
- mIcon->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
+ // First case is used for open folders
+ if (!mIconOpen.isNull() && (llabs(mControlLabelRotation) > 80))
+ {
+ mIconOpen->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
}
+ else if(mIcon)
+ {
+ mIcon->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
+ }
if (!mLabel.empty())
{