summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rwxr-xr-xindra/llui/llchatentry.cpp2
-rwxr-xr-xindra/llui/llchatentry.h2
-rwxr-xr-xindra/llui/lltextbase.cpp26
-rwxr-xr-xindra/llui/lltextbase.h2
-rwxr-xr-xindra/newview/app_settings/settings.xml2
-rwxr-xr-xindra/newview/llconversationmodel.cpp2
-rwxr-xr-xindra/newview/llconversationview.cpp5
-rwxr-xr-xindra/newview/llfloaterimsession.cpp12
-rwxr-xr-xindra/newview/llfloaterimsessiontab.cpp3
-rwxr-xr-xindra/newview/llfloaterimsessiontab.h3
-rwxr-xr-xindra/newview/llimview.cpp3
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_im_session.xml14
-rwxr-xr-xindra/newview/skins/default/xui/en/notifications.xml4
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_preferences_chat.xml4
14 files changed, 41 insertions, 43 deletions
diff --git a/indra/llui/llchatentry.cpp b/indra/llui/llchatentry.cpp
index c7e732e0c9..c04b70eb64 100755
--- a/indra/llui/llchatentry.cpp
+++ b/indra/llui/llchatentry.cpp
@@ -158,7 +158,7 @@ void LLChatEntry::onValueChange(S32 start, S32 end)
resetLabel();
}
-bool LLChatEntry::useLabel()
+bool LLChatEntry::useLabel() const
{
return !getLength() && !mLabel.empty();
}
diff --git a/indra/llui/llchatentry.h b/indra/llui/llchatentry.h
index 3a5e87e8c8..e67f39b21b 100755
--- a/indra/llui/llchatentry.h
+++ b/indra/llui/llchatentry.h
@@ -56,7 +56,7 @@ protected:
LLChatEntry(const Params& p);
/*virtual*/ void beforeValueChange();
/*virtual*/ void onValueChange(S32 start, S32 end);
- /*virtual*/ bool useLabel();
+ /*virtual*/ bool useLabel() const;
public:
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index bf216b32d4..a53a38124c 100755
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1854,7 +1854,17 @@ LLTextBase::segment_set_t::iterator LLTextBase::getSegIterContaining(S32 index)
static LLPointer<LLIndexSegment> index_segment = new LLIndexSegment();
- if (index > getLength()) { return mSegments.end(); }
+ S32 text_len = 0;
+ if (!useLabel())
+ {
+ text_len = getLength();
+ }
+ else
+ {
+ text_len = mLabel.getWString().length();
+ }
+
+ if (index > text_len) { return mSegments.end(); }
// when there are no segments, we return the end iterator, which must be checked by caller
if (mSegments.size() <= 1) { return mSegments.begin(); }
@@ -1870,7 +1880,17 @@ LLTextBase::segment_set_t::const_iterator LLTextBase::getSegIterContaining(S32 i
{
static LLPointer<LLIndexSegment> index_segment = new LLIndexSegment();
- if (index > getLength()) { return mSegments.end(); }
+ S32 text_len = 0;
+ if (!useLabel())
+ {
+ text_len = getLength();
+ }
+ else
+ {
+ text_len = mLabel.getWString().length();
+ }
+
+ if (index > text_len) { return mSegments.end(); }
// when there are no segments, we return the end iterator, which must be checked by caller
if (mSegments.size() <= 1) { return mSegments.begin(); }
@@ -2101,7 +2121,7 @@ void LLTextBase::resetLabel()
}
}
-bool LLTextBase::useLabel()
+bool LLTextBase::useLabel() const
{
return !getLength() && !mLabel.empty() && !hasFocus();
}
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index 20a73387b5..2fb58d468a 100755
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -507,7 +507,7 @@ protected:
void initFromParams(const Params& p);
virtual void beforeValueChange();
virtual void onValueChange(S32 start, S32 end);
- virtual bool useLabel();
+ virtual bool useLabel() const;
// draw methods
void drawSelectionBackground(); // draws the black box behind the selected text
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 411e5f9005..313eb550fd 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -6499,7 +6499,7 @@
<key>Type</key>
<string>String</string>
<key>Value</key>
- <string>noaction</string>
+ <string>toast</string>
</map>
<key>NotificationToastLifeTime</key>
<map>
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 27caedf472..192a594c9d 100755
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -363,7 +363,7 @@ void LLConversationItemSession::buildContextMenu(LLMenuGL& menu, U32 flags)
lldebugs << "LLConversationItemParticipant::buildContextMenu()" << llendl;
menuentry_vec_t items;
menuentry_vec_t disabled_items;
- if(flags & ITEM_IN_MULTI_SELECTION)
+ if((flags & ITEM_IN_MULTI_SELECTION) && (this->getType() != CONV_SESSION_NEARBY))
{
items.push_back(std::string("close_selected_conversations"));
}
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 0695337241..9bb9c826e5 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -127,7 +127,10 @@ void LLConversationViewSession::setHighlightState(bool hihglight_state)
void LLConversationViewSession::startFlashing()
{
- if (isInVisibleChain() && mFlashStateOn && !mFlashStarted)
+ LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
+
+ // Need to start flashing only when "Conversations" is opened or brought on top
+ if (isInVisibleChain() && !im_box->isMinimized() && mFlashStateOn && !mFlashStarted)
{
mFlashStarted = true;
mFlashTimer->startFlashing();
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp
index 1de6effa2b..5cb9df5625 100755
--- a/indra/newview/llfloaterimsession.cpp
+++ b/indra/newview/llfloaterimsession.cpp
@@ -109,18 +109,6 @@ void LLFloaterIMSession::refresh()
void LLFloaterIMSession::onTearOffClicked()
{
LLFloaterIMSessionTab::onTearOffClicked();
- mSpeakingIndicator->setVisible(mIsP2PChat);
- if(mIsP2PChat)
- {
- if(isTornOff())
- {
- mSpeakingIndicator->setSpeakerId(mOtherParticipantUUID, mSessionID);
- }
- else
- {
- mSpeakingIndicator->setSpeakerId(LLUUID::null);
- }
- }
}
// virtual
diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp
index cc2859c099..53b439b32e 100755
--- a/indra/newview/llfloaterimsessiontab.cpp
+++ b/indra/newview/llfloaterimsessiontab.cpp
@@ -55,7 +55,6 @@ LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)
, mSessionID(session_id.asUUID())
, mConversationsRoot(NULL)
, mScroller(NULL)
- , mSpeakingIndicator(NULL)
, mChatHistory(NULL)
, mInputEditor(NULL)
, mInputEditorPad(0)
@@ -259,8 +258,6 @@ BOOL LLFloaterIMSessionTab::postBuild()
scroller_params.rect(scroller_view_rect);
mScroller = LLUICtrlFactory::create<LLFolderViewScrollContainer>(scroller_params);
mScroller->setFollowsAll();
-
- mSpeakingIndicator = getChild<LLOutputMonitorCtrl>("speaking_indicator");
// Insert that scroller into the panel widgets hierarchy
mParticipantListPanel->addChild(mScroller);
diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h
index ba80d2369a..e5f17a25f4 100755
--- a/indra/newview/llfloaterimsessiontab.h
+++ b/indra/newview/llfloaterimsessiontab.h
@@ -171,8 +171,7 @@ protected:
LLFolderView* mConversationsRoot;
LLScrollContainer* mScroller;
- LLOutputMonitorCtrl* mSpeakingIndicator;
- LLChatHistory* mChatHistory;
+ LLChatHistory* mChatHistory;
LLChatEntry* mInputEditor;
LLLayoutPanel * mChatLayoutPanel;
LLLayoutStack * mInputPanels;
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index ba96c5ee24..8d055be263 100755
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -311,9 +311,10 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
}
else
{
- if (is_dnd_msg && (ON_TOP == conversations_floater_status ||
+ if ((is_dnd_msg && (ON_TOP == conversations_floater_status ||
NOT_ON_TOP == conversations_floater_status ||
CLOSED == conversations_floater_status))
+ || CLOSED == conversations_floater_status)
{
im_box->highlightConversationItemWidget(session_id, true);
}
diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml
index 8da4213c65..43d0f2fb18 100755
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -142,19 +142,7 @@
left_pad="2"
name="voice_call_btn"
tool_tip="Open voice connection"
- width="31"/>
- <output_monitor
- auto_update="true"
- follows="top|left"
- draw_border="false"
- height="16"
- layout="topleft"
- top="10"
- left_pad="10"
- mouse_opaque="true"
- name="speaking_indicator"
- visible="false"
- width="20" />
+ width="31"/>
<button
follows="right|top"
height="25"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 9d1973f267..6ed5f6b2cc 100755
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -5954,9 +5954,7 @@ Your calling card was declined.
icon="notifytip.tga"
name="TeleportToPerson"
type="notifytip">
- To contact Residents like &apos;[NAME]&apos;, click on the &quot;People&quot; button , select a Resident from the window that opens, then click &apos;IM&apos; at the
- bottom of the window.
- (You can also double-click on their name in the list, or right-click and choose &apos;IM&apos;).
+ To open a private conversation with someone, right-click on their avatar and choose &apos;IM&apos; from the menu.
</notification>
<notification
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
index 2fd26e3f01..8e867259c5 100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -14,6 +14,7 @@
border="false"
height="60"
layout="topleft"
+ name="general_chat_settings"
top="10"
left="13"
width="517">
@@ -97,6 +98,7 @@
border="false"
height="165"
layout="topleft"
+ name="im_notification_settings"
left="13"
width="517">
@@ -382,6 +384,7 @@
border="false"
height="50"
layout="topleft"
+ name="play_sound_settings"
left="13"
top_pad="10"
width="517">
@@ -444,6 +447,7 @@
<panel
height="50"
layout="topleft"
+ name="log_settings"
left="13"
top_pad="10"
width="505">