summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloaterpreference.cpp4
-rw-r--r--indra/newview/llselectmgr.cpp7
-rw-r--r--indra/newview/llselectmgr.h1
-rw-r--r--indra/newview/lltoolpie.cpp8
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_advanced.xml51
5 files changed, 51 insertions, 20 deletions
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 8b3391726a..a199da3b00 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1043,11 +1043,15 @@ void LLFloaterPreference::onClickSetKey()
void LLFloaterPreference::setKey(KEY key)
{
childSetValue("modifier_combo", LLKeyboard::stringFromKey(key));
+ // update the control right away since we no longer wait for apply
+ getChild<LLUICtrl>("modifier_combo")->onCommit();
}
void LLFloaterPreference::onClickSetMiddleMouse()
{
childSetValue("modifier_combo", "MiddleMouse");
+ // update the control right away since we no longer wait for apply
+ getChild<LLUICtrl>("modifier_combo")->onCommit();
}
void LLFloaterPreference::onClickSkipDialogs()
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index d68897b64f..759c86f3a0 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -801,6 +801,8 @@ LLObjectSelectionHandle LLSelectMgr::setHoverObject(LLViewerObject *objectp, S32
return NULL;
}
+ mHoverObjects->mPrimaryObject = objectp;
+
objectp = objectp->getRootEdit();
// is the requested object the same as the existing hover object root?
@@ -834,6 +836,11 @@ LLSelectNode *LLSelectMgr::getHoverNode()
return mHoverObjects->getFirstRootNode();
}
+LLSelectNode *LLSelectMgr::getPrimaryHoverNode()
+{
+ return mHoverObjects->mSelectNodeMap[mHoverObjects->mPrimaryObject];
+}
+
void LLSelectMgr::highlightObjectOnly(LLViewerObject* objectp)
{
if (!objectp)
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index 6e757ef976..2050a73f26 100644
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -404,6 +404,7 @@ public:
LLObjectSelectionHandle setHoverObject(LLViewerObject *objectp, S32 face = -1);
LLSelectNode *getHoverNode();
+ LLSelectNode *getPrimaryHoverNode();
void highlightObjectOnly(LLViewerObject *objectp);
void highlightObjectAndFamily(LLViewerObject *objectp);
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 7c17699bf9..b825bde912 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -598,6 +598,9 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
static bool needs_tooltip(LLSelectNode* nodep)
{
+ if (!nodep)
+ return false;
+
LLViewerObject* object = nodep->getObject();
LLViewerObject *parent = (LLViewerObject *)object->getParent();
if (object->flagHandleTouch()
@@ -733,7 +736,10 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
tooltip_msg.append( nodep->mName );
}
- bool needs_tip = needs_tooltip(nodep);
+ // also check the primary node since sometimes it can have an action even though
+ // the root node doesn't
+ bool needs_tip = needs_tooltip(nodep) ||
+ needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode());
if (show_all_object_tips || needs_tip)
{
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 91dcdce23b..b8fc72b754 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -240,8 +240,8 @@ Avatars:
width="256"
top_pad="5"/>
<radio_group
- enabled_control="ShowScriptErrors"
- control_name="ShowScriptErrorsLocation"
+ enabled_control="ShowScriptErrors"
+ control_name="ShowScriptErrorsLocation"
follows="top|left"
draw_border="false"
height="40"
@@ -269,6 +269,8 @@ Avatars:
</radio_group>
<check_box
follows="top|left"
+ enabled_control="EnableVoiceChat"
+ control_name="PushToTalkToggle"
height="20"
label="Use Push-to-talk in toggle mode"
layout="topleft"
@@ -279,6 +281,9 @@ Avatars:
tool_tip="When in toggle mode, press and release the push-to-talk trigger to switch your microphone on and off. When not in toggle mode, the microphone is active only when the trigger is held down."/>
<line_editor
follows="top|left"
+ control_name="PushToTalkButton"
+ enabled="false"
+ enabled_control="EnableVoiceChat"
height="19"
left_delta="50"
max_length="254"
@@ -287,22 +292,30 @@ Avatars:
top_pad="0"
width="280" />
<button
- follows="top|left"
- height="20"
- label="Set Key"
- left_delta="0"
- name="set_voice_hotkey_button"
- width="115"
- top_pad="5" />
+ follows="top|left"
+ enabled_control="EnableVoiceChat"
+ height="20"
+ label="Set Key"
+ left_delta="0"
+ name="set_voice_hotkey_button"
+ width="115"
+ top_pad="5">
+ <button.commit_callback
+ function="Pref.VoiceSetKey" />
+ </button>
<button
- bottom_delta="0"
- follows="left"
- font="SansSerif"
- halign="center"
- height="20"
- label="Middle Mouse Button"
- left_delta="120"
- mouse_opaque="true"
- name="set_voice_middlemouse_button"
- width="160" />
+ bottom_delta="0"
+ enabled_control="EnableVoiceChat"
+ follows="left"
+ font="SansSerif"
+ halign="center"
+ height="20"
+ label="Middle Mouse Button"
+ left_delta="120"
+ mouse_opaque="true"
+ name="set_voice_middlemouse_button"
+ width="160">
+ <button.commit_callback
+ function="Pref.VoiceSetMiddleMouse" />
+ </button>
</panel>