Merge branch 'DRTVWR-530-maint' of https://bitbucket.org/lindenlab/viewer
commit
7bef9a1605
|
|
@ -5376,22 +5376,23 @@ bool LLVolumeFace::cacheOptimize()
|
|||
{
|
||||
triangle_data.resize(mNumIndices / 3);
|
||||
vertex_data.resize(mNumVertices);
|
||||
}
|
||||
catch (std::bad_alloc&)
|
||||
{
|
||||
LL_WARNS("LLVOLUME") << "Resize failed" << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
for (U32 i = 0; i < mNumIndices; i++)
|
||||
{ //populate vertex data and triangle data arrays
|
||||
U16 idx = mIndices[i];
|
||||
U32 tri_idx = i/3;
|
||||
for (U32 i = 0; i < mNumIndices; i++)
|
||||
{ //populate vertex data and triangle data arrays
|
||||
U16 idx = mIndices[i];
|
||||
U32 tri_idx = i / 3;
|
||||
|
||||
vertex_data[idx].mTriangles.push_back(&(triangle_data[tri_idx]));
|
||||
vertex_data[idx].mIdx = idx;
|
||||
triangle_data[tri_idx].mVertex[i%3] = &(vertex_data[idx]);
|
||||
}
|
||||
vertex_data[idx].mTriangles.push_back(&(triangle_data[tri_idx]));
|
||||
vertex_data[idx].mIdx = idx;
|
||||
triangle_data[tri_idx].mVertex[i % 3] = &(vertex_data[idx]);
|
||||
}
|
||||
}
|
||||
catch (std::bad_alloc&)
|
||||
{
|
||||
// resize or push_back failed
|
||||
LL_WARNS("LLVOLUME") << "Resize for " << mNumVertices << " vertices failed" << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
/*F32 pre_acmr = 1.f;
|
||||
//measure cache misses from before rebuild
|
||||
|
|
|
|||
|
|
@ -194,6 +194,7 @@ void LLPluginProcessParent::shutdown()
|
|||
&& state != STATE_ERROR)
|
||||
{
|
||||
(*it).second->setState(STATE_GOODBYE);
|
||||
(*it).second->mOwner = NULL;
|
||||
}
|
||||
if (state != STATE_DONE)
|
||||
{
|
||||
|
|
@ -414,7 +415,10 @@ void LLPluginProcessParent::idle(void)
|
|||
mMessagePipe->pumpOutput();
|
||||
|
||||
// Only do input processing here if this instance isn't in a pollset.
|
||||
if(!mPolledInput)
|
||||
// If viewer and plugin are both shutting down, don't process further
|
||||
// input, viewer won't be able to handle it.
|
||||
if(!mPolledInput
|
||||
&& !(mState >= STATE_GOODBYE && LLApp::isExiting()))
|
||||
{
|
||||
mMessagePipe->pumpInput();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1660,11 +1660,14 @@ void LLTextBase::reflow()
|
|||
{
|
||||
// find first element whose end comes after start_index
|
||||
line_list_t::iterator iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), start_index, line_end_compare());
|
||||
line_start_index = iter->mDocIndexStart;
|
||||
line_count = iter->mLineNum;
|
||||
cur_top = iter->mRect.mTop;
|
||||
getSegmentAndOffset(iter->mDocIndexStart, &seg_iter, &seg_offset);
|
||||
mLineInfoList.erase(iter, mLineInfoList.end());
|
||||
if (iter != mLineInfoList.end())
|
||||
{
|
||||
line_start_index = iter->mDocIndexStart;
|
||||
line_count = iter->mLineNum;
|
||||
cur_top = iter->mRect.mTop;
|
||||
getSegmentAndOffset(iter->mDocIndexStart, &seg_iter, &seg_offset);
|
||||
mLineInfoList.erase(iter, mLineInfoList.end());
|
||||
}
|
||||
}
|
||||
|
||||
S32 line_height = 0;
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
<binding key="ENTER" mask="NONE" command="start_chat"/>
|
||||
<binding key="DIVIDE" mask="NONE" command="start_gesture"/>
|
||||
|
||||
<binding key="" mask="NONE" mouse="MMB" command="toggle_voice"/>
|
||||
<binding key="" mask="NONE" mouse="MMB" command="voice_follow_key"/>
|
||||
</first_person>
|
||||
<third_person>
|
||||
<binding key="A" mask="NONE" command="turn_left"/>
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
<binding key="PAD_ENTER" mask="CTL_ALT_SHIFT" command="start_chat"/>
|
||||
<binding key="PAD_DIVIDE" mask="CTL_ALT_SHIFT" command="start_gesture"/>
|
||||
|
||||
<binding key="" mask="NONE" mouse="MMB" command="toggle_voice"/>
|
||||
<binding key="" mask="NONE" mouse="MMB" command="voice_follow_key"/>
|
||||
</third_person>
|
||||
<sitting>
|
||||
<binding key="A" mask="ALT" command="spin_around_cw"/>
|
||||
|
|
@ -222,7 +222,7 @@
|
|||
<binding key="ENTER" mask="NONE" command="start_chat"/>
|
||||
<binding key="DIVIDE" mask="NONE" command="start_gesture"/>
|
||||
|
||||
<binding key="" mask="NONE" mouse="MMB" command="toggle_voice"/>
|
||||
<binding key="" mask="NONE" mouse="MMB" command="voice_follow_key"/>
|
||||
</sitting>
|
||||
<edit_avatar>
|
||||
<!--Avatar editing camera controls-->
|
||||
|
|
@ -249,6 +249,6 @@
|
|||
<binding key="PAD_ENTER" mask="NONE" command="start_chat"/>
|
||||
<binding key="PAD_DIVIDE" mask="NONE" command="start_gesture"/>
|
||||
|
||||
<binding key="" mask="NONE" mouse="MMB" command="toggle_voice"/>
|
||||
<binding key="" mask="NONE" mouse="MMB" command="voice_follow_key"/>
|
||||
</edit_avatar>
|
||||
</keys>
|
||||
|
|
@ -11097,7 +11097,7 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>PushToTalkToggle</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Should the push-to-talk button behave as a toggle</string>
|
||||
<string>Should the push-to-talk toolbar button behave as a toggle</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
|
|
|
|||
|
|
@ -5189,11 +5189,6 @@ void LLAppViewer::loadKeyBindings()
|
|||
LLKeyboard::keyFromString(key_string, &key);
|
||||
}
|
||||
|
||||
value = gSavedSettings.getBOOL("PushToTalkToggle");
|
||||
std::string control_name = value ? "toggle_voice" : "voice_follow_key";
|
||||
third_person_view.registerControl(control_name, 0, mouse, key, MASK_NONE, true);
|
||||
sitting_view.registerControl(control_name, 0, mouse, key, MASK_NONE, true);
|
||||
|
||||
if (third_person_view.hasUnsavedChanges())
|
||||
{
|
||||
// calls loadBindingsXML()
|
||||
|
|
@ -5205,25 +5200,6 @@ void LLAppViewer::loadKeyBindings()
|
|||
// calls loadBindingsXML()
|
||||
sitting_view.saveToSettings();
|
||||
}
|
||||
|
||||
// in case of voice we need to repeat this in other modes
|
||||
|
||||
for (U32 i = 0; i < LLKeyConflictHandler::MODE_COUNT - 1; ++i)
|
||||
{
|
||||
// edit and first person modes; MODE_SAVED_SETTINGS not in use at the moment
|
||||
if (i != LLKeyConflictHandler::MODE_THIRD_PERSON && i != LLKeyConflictHandler::MODE_SITTING)
|
||||
{
|
||||
LLKeyConflictHandler handler((LLKeyConflictHandler::ESourceMode)i);
|
||||
|
||||
handler.registerControl(control_name, 0, mouse, key, MASK_NONE, true);
|
||||
|
||||
if (handler.hasUnsavedChanges())
|
||||
{
|
||||
// calls loadBindingsXML()
|
||||
handler.saveToSettings();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// since something might have gone wrong or there might have been nothing to save
|
||||
// (and because otherwise following code will have to be encased in else{}),
|
||||
|
|
|
|||
|
|
@ -1041,7 +1041,7 @@ bool LLIMModel::LLIMSession::isOutgoingAdHoc() const
|
|||
|
||||
bool LLIMModel::LLIMSession::isAdHoc()
|
||||
{
|
||||
return IM_SESSION_CONFERENCE_START == mType || (IM_SESSION_INVITE == mType && !gAgent.isInGroup(mSessionID));
|
||||
return IM_SESSION_CONFERENCE_START == mType || (IM_SESSION_INVITE == mType && !gAgent.isInGroup(mSessionID, TRUE));
|
||||
}
|
||||
|
||||
bool LLIMModel::LLIMSession::isP2P()
|
||||
|
|
@ -1051,7 +1051,7 @@ bool LLIMModel::LLIMSession::isP2P()
|
|||
|
||||
bool LLIMModel::LLIMSession::isGroupChat()
|
||||
{
|
||||
return IM_SESSION_GROUP_START == mType || (IM_SESSION_INVITE == mType && gAgent.isInGroup(mSessionID));
|
||||
return IM_SESSION_GROUP_START == mType || (IM_SESSION_INVITE == mType && gAgent.isInGroup(mSessionID, TRUE));
|
||||
}
|
||||
|
||||
bool LLIMModel::LLIMSession::isOtherParticipantAvaline()
|
||||
|
|
@ -2317,7 +2317,7 @@ void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id)
|
|||
// *NOTE: 12/28/2009: check avaline calls: LLVoiceClient::isParticipantAvatar returns false for them
|
||||
bool participant_is_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(session_id);
|
||||
|
||||
bool is_group = participant_is_avatar && gAgent.isInGroup(session_id);
|
||||
bool is_group = participant_is_avatar && gAgent.isInGroup(session_id, TRUE);
|
||||
|
||||
LLAvatarIconCtrl* avatar_icon = getChild<LLAvatarIconCtrl>("avatar_icon");
|
||||
LLGroupIconCtrl* group_icon = getChild<LLGroupIconCtrl>("group_icon");
|
||||
|
|
@ -2612,7 +2612,7 @@ BOOL LLIncomingCallDialog::postBuild()
|
|||
}
|
||||
|
||||
std::string call_type;
|
||||
if (gAgent.isInGroup(session_id))
|
||||
if (gAgent.isInGroup(session_id, TRUE))
|
||||
{
|
||||
LLStringUtil::format_map_t args;
|
||||
LLGroupData data;
|
||||
|
|
@ -2792,8 +2792,8 @@ void LLIncomingCallDialog::processCallResponse(S32 response, const LLSD &payload
|
|||
switch(type){
|
||||
case IM_SESSION_CONFERENCE_START:
|
||||
case IM_SESSION_GROUP_START:
|
||||
case IM_SESSION_INVITE:
|
||||
if (gAgent.isInGroup(session_id))
|
||||
case IM_SESSION_INVITE:
|
||||
if (gAgent.isInGroup(session_id, TRUE))
|
||||
{
|
||||
LLGroupData data;
|
||||
if (!gAgent.getGroupData(session_id, data)) break;
|
||||
|
|
@ -3553,7 +3553,7 @@ void LLIMMgr::inviteToSession(
|
|||
notify_box_type = "VoiceInviteP2P";
|
||||
voice_invite = TRUE;
|
||||
}
|
||||
else if ( gAgent.isInGroup(session_id) )
|
||||
else if ( gAgent.isInGroup(session_id, TRUE) )
|
||||
{
|
||||
//only really old school groups have voice invitations
|
||||
notify_box_type = "VoiceInviteGroup";
|
||||
|
|
|
|||
|
|
@ -644,7 +644,6 @@ void LLKeyConflictHandler::saveToSettings(bool temporary)
|
|||
data = getControl("voice_follow_key", 0);
|
||||
}
|
||||
|
||||
gSavedSettings.setBOOL("PushToTalkToggle", can_toggle);
|
||||
if (data.isEmpty())
|
||||
{
|
||||
// legacy viewer has a bug that might crash it if NONE value is assigned.
|
||||
|
|
|
|||
|
|
@ -7345,6 +7345,7 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector4a& start,
|
|||
{
|
||||
if ((j == LLViewerRegion::PARTITION_VOLUME) ||
|
||||
(j == LLViewerRegion::PARTITION_BRIDGE) ||
|
||||
(j == LLViewerRegion::PARTITION_AVATAR) || // for attachments
|
||||
(j == LLViewerRegion::PARTITION_CONTROL_AV) ||
|
||||
(j == LLViewerRegion::PARTITION_TERRAIN) ||
|
||||
(j == LLViewerRegion::PARTITION_TREE) ||
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ END
|
|||
TOOLGRAB CURSOR "lltoolgrab.cur"
|
||||
TOOLLAND CURSOR "lltoolland.cur"
|
||||
TOOLZOOMIN CURSOR "lltoolzoomin.cur"
|
||||
TOOLZOOMOUT CURSOR "lltoolzoomout.cur"
|
||||
TOOLCREATE CURSOR "lltoolcreate.cur"
|
||||
ARROWDRAG CURSOR "llarrowdrag.cur"
|
||||
ARROW CURSOR "llarrow.cur"
|
||||
|
|
|
|||
Loading…
Reference in New Issue