BOOL LLPlacesFolderView::handleRightMouseDown(S32 x, S32 y, MASK mask) { // let children to change selection first childrenHandleRightMouseDown(x, y, mask); mParentLandmarksPanel->setCurrentSelectedList((LLPlacesInventoryPanel*)getParentPanel()); // then determine its type and set necessary menu handle if (getCurSelectedItem()) { LLInventoryType::EType inventory_type = getCurSelectedItem()->getListener()->getInventoryType(); inventory_type_menu_handle_t::iterator it_handle = mMenuHandlesByInventoryType.find(inventory_type); if (it_handle != mMenuHandlesByInventoryType.end()) { mPopupMenuHandle = (*it_handle).second; } else { llwarns << "Requested menu handle for non-setup inventory type: " << inventory_type << llendl; } } return LLFolderView::handleRightMouseDown(x, y, mask); }
void OverlayPanel::applyTransformTo(Transform& transform, bool force) { if (force || usecTimestampNow() > _transformExpiry) { PanelAttachable::applyTransformTo(transform, true); if (!getParentPanel()) { if (_anchorPositionBindMyAvatar) { transform.setTranslation(DependencyManager::get<AvatarManager>()->getMyAvatar() ->getPosition()); } else if (!_anchorPositionBindEntity.isNull()) { EntityTreePointer entityTree = DependencyManager::get<EntityScriptingInterface>()->getEntityTree(); entityTree->withReadLock([&] { EntityItemPointer foundEntity = entityTree->findEntityByID(_anchorPositionBindEntity); if (foundEntity) { transform.setTranslation(foundEntity->getPosition()); } }); } else { transform.setTranslation(getAnchorPosition()); } if (_anchorRotationBindMyAvatar) { transform.setRotation(DependencyManager::get<AvatarManager>()->getMyAvatar() ->getOrientation()); } else if (!_anchorRotationBindEntity.isNull()) { EntityTreePointer entityTree = DependencyManager::get<EntityScriptingInterface>()->getEntityTree(); entityTree->withReadLock([&] { EntityItemPointer foundEntity = entityTree->findEntityByID(_anchorRotationBindEntity); if (foundEntity) { transform.setRotation(foundEntity->getRotation()); } }); } else { transform.setRotation(getAnchorRotation()); } transform.setScale(getAnchorScale()); transform.postTranslate(getOffsetPosition()); transform.postRotate(getOffsetRotation()); transform.postScale(getOffsetScale()); } pointTransformAtCamera(transform, getOffsetRotation()); } }