From 4e518758d78b4b60d1b123eafc7df5ff4b8c44c6 Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Tue, 5 Jan 2010 16:38:18 +0200 Subject: Fixed major bug EXT-3852 ([BSI] Tabs in Tabbed Instant Messaging do not auto focus the text field when clicked) -- the reason: LLTabContainer set focus to the first panel child; -- fix: capture mouse with Input field to avoid processing of the input focus by LLTabContainer. --HG-- branch : product-engine --- indra/newview/llimfloater.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'indra') diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 259f629bdd..9bd5a8d5aa 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -120,6 +120,12 @@ void LLIMFloater::onFocusLost() void LLIMFloater::onFocusReceived() { LLIMModel::getInstance()->setActiveSessionID(mSessionID); + + // return focus to the input field when active tab in the multitab container is clicked. + if (isChatMultiTab() && mInputEditor) + { + mInputEditor->setFocus(TRUE); + } } // virtual @@ -618,6 +624,14 @@ void LLIMFloater::onInputEditorFocusReceived( LLFocusableElement* caller, void* //in disconnected state IM input editor should be disabled self->mInputEditor->setEnabled(!gDisconnected); } + + // when IM Floater is a part of the multitab container LLTabContainer set focus to the first + // child on tab button's mouse up. This leads input field lost focus. See EXT-3852. + if (isChatMultiTab()) + { + // So, let capture mouse tp prevent LLTabContainer set focus on the panel's first child. + gFocusMgr.setMouseCapture(self->mInputEditor); + } } // static -- cgit v1.2.3 From 01745697e1ad461209bc9f4ec907ccb5996e5ae7 Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Tue, 5 Jan 2010 16:48:48 +0200 Subject: Fixed low bug EXT-3898 ("No one near" text in the VCP is confusing) - message updated with "No one near has voice enabled" --HG-- branch : product-engine --- indra/newview/skins/default/xui/en/floater_voice_controls.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml index 1fa613468f..a4ef807f06 100644 --- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml @@ -30,7 +30,7 @@ - No one near + No one near has voice enabled -- cgit v1.2.3 From c804211cef6873d13e605c503aa094a2f9aa3e73 Mon Sep 17 00:00:00 2001 From: Sergei Litovchuk Date: Tue, 5 Jan 2010 17:05:19 +0200 Subject: Fixed major bug (EXT-3903) Adding ten Profile Picks blocks Classifieds creation - Fixed disabling only "New Pick" menu when picks amount reaches the limit of 10, Classifieds can still be created. --HG-- branch : product-engine --- indra/newview/llpanelpicks.cpp | 14 +++++++++++++- indra/newview/llpanelpicks.h | 1 + indra/newview/skins/default/xui/en/menu_picks_plus.xml | 3 +++ 3 files changed, 17 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 751705dd57..ada65c98a4 100644 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -411,6 +411,7 @@ BOOL LLPanelPicks::postBuild() LLUICtrl::CommitCallbackRegistry::ScopedRegistrar plus_registar; plus_registar.add("Picks.Plus.Action", boost::bind(&LLPanelPicks::onPlusMenuItemClicked, this, _2)); + mEnableCallbackRegistrar.add("Picks.Plus.Enable", boost::bind(&LLPanelPicks::isActionEnabled, this, _2)); mPlusMenu = LLUICtrlFactory::getInstance()->createFromFile("menu_picks_plus.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); return TRUE; @@ -430,6 +431,18 @@ void LLPanelPicks::onPlusMenuItemClicked(const LLSD& param) } } +bool LLPanelPicks::isActionEnabled(const LLSD& userdata) const +{ + std::string command_name = userdata.asString(); + + if (command_name == "new_pick" && LLAgentPicksInfo::getInstance()->isPickLimitReached()) + { + return false; + } + + return true; +} + void LLPanelPicks::onAccordionStateChanged(const LLAccordionCtrlTab* acc_tab) { if(!mPicksAccTab->getDisplayChildren()) @@ -652,7 +665,6 @@ void LLPanelPicks::updateButtons() if (getAvatarId() == gAgentID) { - childSetEnabled(XML_BTN_NEW, !LLAgentPicksInfo::getInstance()->isPickLimitReached()); childSetEnabled(XML_BTN_DELETE, has_selected); } diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h index 1b2e35ca46..3f757e482e 100644 --- a/indra/newview/llpanelpicks.h +++ b/indra/newview/llpanelpicks.h @@ -97,6 +97,7 @@ private: void onClickMap(); void onPlusMenuItemClicked(const LLSD& param); + bool isActionEnabled(const LLSD& userdata) const; void onListCommit(const LLFlatListView* f_list); void onAccordionStateChanged(const LLAccordionCtrlTab* acc_tab); diff --git a/indra/newview/skins/default/xui/en/menu_picks_plus.xml b/indra/newview/skins/default/xui/en/menu_picks_plus.xml index 3065239615..f3b207e36c 100644 --- a/indra/newview/skins/default/xui/en/menu_picks_plus.xml +++ b/indra/newview/skins/default/xui/en/menu_picks_plus.xml @@ -11,6 +11,9 @@ + Date: Tue, 5 Jan 2010 17:36:54 +0200 Subject: Fixed low bug EXT-3895 (Context menu for avatar appears only if right-mouse click was performed over avatar's image but not over avatar's name) - redirected processing of right mouse down event to an appropriate chiclet. --HG-- branch : product-engine --- indra/newview/llsyswellwindow.cpp | 11 +++++++++++ indra/newview/llsyswellwindow.h | 4 ++++ 2 files changed, 15 insertions(+) (limited to 'indra') diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index 2114b1c9d7..44cf82540a 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -409,6 +409,11 @@ BOOL LLIMWellWindow::RowPanel::handleMouseDown(S32 x, S32 y, MASK mask) return LLPanel::handleMouseDown(x, y, mask); } +// virtual +BOOL LLIMWellWindow::RowPanel::handleRightMouseDown(S32 x, S32 y, MASK mask) +{ + return mChiclet->handleRightMouseDown(x, y, mask); +} /************************************************************************/ /* ObjectRowPanel implementation */ /************************************************************************/ @@ -552,6 +557,12 @@ BOOL LLIMWellWindow::ObjectRowPanel::handleMouseDown(S32 x, S32 y, MASK mask) return LLPanel::handleMouseDown(x, y, mask); } +// virtual +BOOL LLIMWellWindow::ObjectRowPanel::handleRightMouseDown(S32 x, S32 y, MASK mask) +{ + return mChiclet->handleRightMouseDown(x, y, mask); +} + /************************************************************************/ /* LLNotificationWellWindow implementation */ /************************************************************************/ diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h index 833e4dd504..ded3abcbf4 100644 --- a/indra/newview/llsyswellwindow.h +++ b/indra/newview/llsyswellwindow.h @@ -217,6 +217,8 @@ private: void onMouseEnter(S32 x, S32 y, MASK mask); void onMouseLeave(S32 x, S32 y, MASK mask); BOOL handleMouseDown(S32 x, S32 y, MASK mask); + BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); + private: static const S32 CHICLET_HPAD = 10; void onChicletSizeChanged(LLChiclet* ctrl, const LLSD& param); @@ -245,6 +247,8 @@ private: /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask); /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask); /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); + /*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); + private: void onClosePanel(); static EObjectType getObjectType(const LLNotificationPtr& notification); -- cgit v1.2.3 From 244abc70ada99145ec7624e1bc7cc452b900c12d Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Tue, 5 Jan 2010 17:52:34 +0200 Subject: =?UTF-8?q?fixed=20EXT-3819=20=E2=80=9C[BSI]=20Extra=20space=20in?= =?UTF-8?q?=20plain=20text=20nearby=20chat=20log=E2=80=9D,=20removed=20red?= =?UTF-8?q?undant=20space;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : product-engine --- indra/newview/llnearbychat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 649c414569..e7043b2d00 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -137,7 +137,7 @@ std::string appendTime() time_t utc_time; utc_time = time_corrected(); std::string timeStr ="["+ LLTrans::getString("TimeHour")+"]:[" - +LLTrans::getString("TimeMin")+"] "; + +LLTrans::getString("TimeMin")+"]"; LLSD substitution; -- cgit v1.2.3 From 0b51078da2f8c0a69791f8737d74d9330ef91eee Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Tue, 5 Jan 2010 17:54:01 +0200 Subject: Fixed major bug EXT-3852 ([BSI] Tabs in Tabbed Instant Messaging do not auto focus the text field when clicked) - fix is improved (implemented in 7372:07f21c92896f): fixed bug with "Edit Text" mouse pointer wherever it is. cleared control captured mouse to prevent LLTabContainer set focus on the panel's first child. --HG-- branch : product-engine --- indra/newview/llimfloater.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 9bd5a8d5aa..fdc5d14d97 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -629,8 +629,9 @@ void LLIMFloater::onInputEditorFocusReceived( LLFocusableElement* caller, void* // child on tab button's mouse up. This leads input field lost focus. See EXT-3852. if (isChatMultiTab()) { - // So, let capture mouse tp prevent LLTabContainer set focus on the panel's first child. - gFocusMgr.setMouseCapture(self->mInputEditor); + // So, clear control captured mouse to prevent LLTabContainer set focus on the panel's first child. + // do not pass self->mInputEditor, this leads to have "Edit Text" mouse pointer wherever it is. + gFocusMgr.setMouseCapture(NULL); } } -- cgit v1.2.3