From 949fa829c2c1c6b4d82b0c15a0f517c66d01630f Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Sat, 18 May 2013 10:57:19 -0400 Subject: [PATCH] Improve enable_object_edit() so that the Edit pie menu entry doesn't take forever to enable Bypasses pointless call to LLSelectMgr::getInstance()->selectGetAllValidAndObjectsFound() Cleans up RLVa patch to read more clearly (this change is better viewed without spaces) --- indra/newview/llviewermenu.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index ba8a0d820..71f0128bb 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2338,18 +2338,19 @@ bool enable_object_edit() enable = LLViewerParcelMgr::getInstance()->allowAgentBuild() || LLSelectMgr::getInstance()->getSelection()->isAttachment(); } - else if (LLSelectMgr::getInstance()->selectGetAllValidAndObjectsFound()) + // Singu Note: The following check is wasteful, bypass it + // The following RLVa patch has been modified from its original version. It been formatted to run in the time allotted. + //else if (LLSelectMgr::getInstance()->selectGetAllValidAndObjectsFound()) +// [RLVa:KB] - Checked: 2010-11-29 (RLVa-1.3.0c) | Modified after RLVa-1.3.0c on 2013-05-18 + else if (!rlv_handler_t::isEnabled() || (!gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) && (!gRlvHandler.hasBehaviour(RLV_BHVR_EDITOBJ))) { -// enable = true; -// [RLVa:KB] - Checked: 2010-11-29 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c - bool fRlvCanEdit = (!gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) && (!gRlvHandler.hasBehaviour(RLV_BHVR_EDITOBJ)); - if (!fRlvCanEdit) - { - LLObjectSelectionHandle hSel = LLSelectMgr::getInstance()->getSelection(); - RlvSelectIsEditable f; - fRlvCanEdit = (hSel.notNull()) && ((hSel->getFirstRootNode(&f, TRUE)) == NULL); - } - enable = fRlvCanEdit; + enable = true; + } + else // Restrictions disallow edit, check for an exception for the selection + { + LLObjectSelectionHandle hSel = LLSelectMgr::getInstance()->getSelection(); + RlvSelectIsEditable f; + enable = (hSel.notNull()) && ((hSel->getFirstRootNode(&f, TRUE)) == NULL); // [/RLVa:KB] }