From de9d99445c19b2297031ca300e7e25302827acf0 Mon Sep 17 00:00:00 2001 From: Zi Ree Date: Mon, 10 Oct 2022 01:24:49 +0200 Subject: [PATCH] FIRE-32282: fix face selection cycle starting at face 1 instead of face 0 --- indra/newview/llviewermenu.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 9d82741c52..461cdef026 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6754,6 +6754,30 @@ class LLToolsSelectNextPartFace : public view_listener_t if (fwd || ifwd) { + // FIRE-32282: fix face selection cycle starting at face 1 instead of face 0 + // is more than one face selected in the whole set? + if (LLSelectMgr::getInstance()->getSelection()->getTECount() > 1) + { + // count the number of selected faces on the current link + S32 count = 0; + S32 num_tes = to_select->getNumTEs(); + for (S32 te = 0; te < num_tes; te++) + { + if (nodep->isTESelected(te)) + { + ++count; + } + } + + // if all faces of the current link are selected, set a flag to make sure the + // next selected face will be face 0 + if (count == num_tes) + { + selected_te = -1; + } + } + // + if (selected_te < 0) { new_te = 0;