summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llbutton.cpp4
-rw-r--r--indra/newview/app_settings/commands.xml4
-rwxr-xr-xindra/newview/llagent.cpp27
-rw-r--r--indra/newview/llagent.h4
-rw-r--r--indra/newview/llchatitemscontainerctrl.cpp5
-rw-r--r--indra/newview/llfloatersnapshot.cpp2
-rw-r--r--indra/newview/llnearbychatbar.cpp10
-rw-r--r--indra/newview/llnearbychatbar.h2
-rw-r--r--indra/newview/llnearbychathandler.cpp2
9 files changed, 36 insertions, 24 deletions
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index 2e9c7a5d3d..0a7584a576 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -828,6 +828,10 @@ void LLButton::draw()
{
overlay_color.mV[VALPHA] = 0.5f;
}
+ else if (!getToggleState())
+ {
+ overlay_color.mV[VALPHA] = 0.75f;
+ }
overlay_color.mV[VALPHA] *= alpha;
switch(mImageOverlayAlignment)
diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml
index 296d992b34..3625ce5088 100644
--- a/indra/newview/app_settings/commands.xml
+++ b/indra/newview/app_settings/commands.xml
@@ -215,9 +215,9 @@
icon="Command_Speak_Icon"
label_ref="Command_Speak_Label"
tooltip_ref="Command_Speak_Tooltip"
- execute_function="Agent.ToggleMicrophone"
+ execute_function="Agent.PressMicrophone"
execute_parameters="speak"
- execute_stop_function=""
+ execute_stop_function="Agent.ReleaseMicrophone"
execute_stop_parameters="speak"
is_enabled_function="Agent.IsActionAllowed"
is_enabled_parameters="speak"
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 8303a5942d..31a73c8c31 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -188,28 +188,23 @@ bool LLAgent::isActionAllowed(const LLSD& sdname)
}
// static
-void LLAgent::toggleMicrophone(const LLSD& name)
+void LLAgent::pressMicrophone(const LLSD& name)
{
- gAgent.mMicrophoneOn = ! gAgent.mMicrophoneOn;
+ LLFirstUse::speak(false);
- if ( gAgent.mMicrophoneOn )
- {
- LLFirstUse::speak(false);
+ LLVoiceClient::getInstance()->inputUserControlState(true);
+}
- LLVoiceClient::getInstance()->inputUserControlState(true);
- LLVoiceClient::getInstance()->inputUserControlState(false);
- }
- else
- {
- LLVoiceClient::getInstance()->inputUserControlState(false);
- LLVoiceClient::getInstance()->inputUserControlState(true);
- }
+// static
+void LLAgent::releaseMicrophone(const LLSD& name)
+{
+ LLVoiceClient::getInstance()->inputUserControlState(false);
}
// static
bool LLAgent::isMicrophoneOn(const LLSD& sdname)
{
- return gAgent.mMicrophoneOn;
+ return LLVoiceClient::getInstance()->getUserPTTState();
}
// ************************************************************
@@ -294,7 +289,6 @@ LLAgent::LLAgent() :
mGenderChosen(FALSE),
mVoiceConnected(false),
- mMicrophoneOn(false),
mAppearanceSerialNum(0),
@@ -314,7 +308,8 @@ LLAgent::LLAgent() :
LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(boost::bind(&LLAgent::parcelChangedCallback));
LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Agent.IsActionAllowed", boost::bind(&LLAgent::isActionAllowed, _2));
- LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Agent.ToggleMicrophone", boost::bind(&LLAgent::toggleMicrophone, _2));
+ LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Agent.PressMicrophone", boost::bind(&LLAgent::pressMicrophone, _2));
+ LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Agent.ReleaseMicrophone", boost::bind(&LLAgent::releaseMicrophone, _2));
LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Agent.IsMicrophoneOn", boost::bind(&LLAgent::isMicrophoneOn, _2));
}
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index 0355e68b6e..0f7ed9ce68 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -290,12 +290,12 @@ public:
bool isVoiceConnected() const { return mVoiceConnected; }
void setVoiceConnected(const bool b) { mVoiceConnected = b; }
- static void toggleMicrophone(const LLSD& name);
+ static void pressMicrophone(const LLSD& name);
+ static void releaseMicrophone(const LLSD& name);
static bool isMicrophoneOn(const LLSD& sdname);
private:
bool mVoiceConnected;
- bool mMicrophoneOn;
//--------------------------------------------------------------------
// Chat
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 8584885bc9..9a84280f25 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -35,6 +35,7 @@
#include "llfloaterreg.h"
#include "lllocalcliprect.h"
#include "lltrans.h"
+#include "llnearbychatbar.h"
#include "llviewercontrol.h"
#include "llagentdata.h"
@@ -315,12 +316,12 @@ BOOL LLNearbyChatToastPanel::handleMouseUp (S32 x, S32 y, MASK mask)
return TRUE;
else
{
- LLFloaterReg::showInstance("nearby_chat",LLSD());
+ LLNearbyChatBar::getInstance()->showHistory();
return FALSE;
}
}
- LLFloaterReg::showInstance("nearby_chat",LLSD());
+ LLNearbyChatBar::getInstance()->showHistory();
return LLPanel::handleMouseUp(x,y,mask);
}
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 9d020517d8..8105844b0d 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -2217,7 +2217,7 @@ void LLFloaterSnapshot::draw()
LLFloater::draw();
- if (previewp)
+ if (previewp && !isMinimized())
{
if(previewp->getThumbnailImage())
{
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 3073a19d83..cd84275ef0 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -135,6 +135,16 @@ LLNearbyChatBar* LLNearbyChatBar::getInstance()
return LLFloaterReg::getTypedInstance<LLNearbyChatBar>("chat_bar");
}
+void LLNearbyChatBar::showHistory()
+{
+ if (!getChildView("nearby_chat")->getVisible())
+ {
+ onToggleNearbyChatPanel();
+ }
+
+ openFloater();
+}
+
void LLNearbyChatBar::draw()
{
displaySpeakingIndicator();
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index a6fd6e5665..5a7edac1bb 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -59,6 +59,8 @@ public:
static void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate);
static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate);
+ void showHistory();
+
protected:
static BOOL matchChatTypeTrigger(const std::string& in_str, std::string* out_str);
static void onChatBoxKeystroke(LLLineEditor* caller, void* userdata);
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index dcf444b048..7503164fe6 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -581,7 +581,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, // WARNING - not
sChatWatcher->post(notification);
- if( nearby_chat->getVisible()
+ if( chat_bar->getVisible() && nearby_chat->getVisible()
|| ( chat_msg.mSourceType == CHAT_SOURCE_AGENT
&& gSavedSettings.getBOOL("UseChatBubbles") )
|| !mChannel->getShowToasts() ) // to prevent toasts in Busy mode