SL-19823 Edit not always active #5

master
Andrey Kleshchev 2023-06-10 01:33:43 +03:00
parent 5c6a2779c4
commit 417dbeb68e
3 changed files with 30 additions and 20 deletions

View File

@ -695,19 +695,14 @@ void LLFolderView::draw()
}
}
if (mRenameItem
if (mRenameItem
&& mRenamer
&& mRenamer->getVisible()
)
{
LLRect renamer_rect;
localRectToOtherView(mRenamer->getRect(), &renamer_rect, mScrollContainer);
if (!mScrollContainer->getRect().overlaps(renamer_rect))
{
// renamer is not connected to the item we are renaming in any form so manage it manually
// TODO: consider stopping on any scroll action instead of when out of visible area
finishRenamingItem();
}
&& !getVisibleRect().overlaps(mRenamer->getRect()))
{
// renamer is not connected to the item we are renaming in any form so manage it manually
// TODO: consider stopping on any scroll action instead of when out of visible area
finishRenamingItem();
}
// skip over LLFolderViewFolder::draw since we don't want the folder icon, label,
@ -1851,13 +1846,28 @@ void LLFolderView::update()
}
}
if (mSignalSelectCallback)
{
//RN: we use keyboard focus as a proxy for user-explicit actions
BOOL take_keyboard_focus = (mSignalSelectCallback == SIGNAL_KEYBOARD_FOCUS);
mSelectSignal(mSelectedItems, take_keyboard_focus);
}
mSignalSelectCallback = FALSE;
if (mSelectedItems.size())
{
LLFolderViewItem* item = mSelectedItems.back();
// If the goal is to show renamer, don't callback untill
// item is visible or is no longer being scrolled to.
// Otherwise renamer will be instantly closed
// Todo: consider moving renamer out of selection callback
if (!mNeedsAutoRename || !mNeedsScroll || item->getVisible())
{
if (mSignalSelectCallback)
{
//RN: we use keyboard focus as a proxy for user-explicit actions
BOOL take_keyboard_focus = (mSignalSelectCallback == SIGNAL_KEYBOARD_FOCUS);
mSelectSignal(mSelectedItems, take_keyboard_focus);
}
mSignalSelectCallback = FALSE;
}
}
else
{
mSignalSelectCallback = FALSE;
}
}
void LLFolderView::dumpSelectionInformation()

View File

@ -1133,7 +1133,7 @@ void LLInventoryGallery::changeItemSelection(const LLUUID& item_id, bool scroll_
{
return;
}
if (mNeedsArrange && item_id.notNull() && scroll_to_selection)
if (mNeedsArrange && item_id.notNull())
{
mItemToSelect = item_id;
return;

View File

@ -2425,7 +2425,7 @@ void LLPanelMainInventory::updateCombinationVisibility()
}
}
if (mCombInvUUIDNeedsRename.notNull())
if (mCombInvUUIDNeedsRename.notNull() && mCombinationInventoryPanel->areViewsInitialized())
{
mCombinationInventoryPanel->setSelectionByID(mCombInvUUIDNeedsRename, TRUE);
mCombinationInventoryPanel->getRootFolder()->scrollToShowSelection();