diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 461cdef026..b710cae64b 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6737,6 +6737,16 @@ class LLToolsSelectNextPartFace : public view_listener_t bool ifwd = (userdata.asString() == "includenext"); bool iprev = (userdata.asString() == "includeprevious"); + // Make shift+click on forward/back buttons work like includenext/previous + if (gKeyboard->currentMask(false) & MASK_SHIFT) + { + ifwd = fwd; + iprev = prev; + fwd = false; + prev = false; + } + // + LLViewerObject* to_select = NULL; bool restart_face_on_part = !cycle_faces; S32 new_te = 0; @@ -6886,6 +6896,10 @@ class LLToolsSelectNextPartFace : public view_listener_t } } LLSelectMgr::getInstance()->selectObjectOnly(to_select, new_te); + + // Add this back in additionally to selectObjectOnly() to get the lastOperadedTE() + // function back working to properly shift+cycle through faces + LLSelectMgr::getInstance()->addAsIndividual(to_select, new_te, false); } else {