diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index fa4090c5fe91fc428260e785909e1d1602dc24e1..ff001574595b10a092851e2bced91bbb3cb9b274 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -1076,7 +1076,7 @@ bool LLAvatarActions::canShareSelectedItems(LLInventoryPanel* inv_panel /* = NUL } // static -void LLAvatarActions::toggleBlock(const LLUUID& id) +bool LLAvatarActions::toggleBlock(const LLUUID& id) { LLAvatarName av_name; LLAvatarNameCache::get(id, &av_name); @@ -1086,10 +1086,12 @@ void LLAvatarActions::toggleBlock(const LLUUID& id) if (LLMuteList::getInstance()->isMuted(mute.mID, mute.mName)) { LLMuteList::getInstance()->remove(mute); + return false; } else { LLMuteList::getInstance()->add(mute); + return true; } } diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h index 6845d7675b6b223f01dd69f19f16ebcdfdc8b2bc..7dd358309c5ebddccfa52eec717f72a44e954b09 100644 --- a/indra/newview/llavataractions.h +++ b/indra/newview/llavataractions.h @@ -134,9 +134,10 @@ class LLAvatarActions static void shareWithAvatars(LLView * panel); /** - * Block/unblock the avatar. + * Block/unblock the avatar by id. + * Returns true if blocked, returns false if unblocked */ - static void toggleBlock(const LLUUID& id); + static bool toggleBlock(const LLUUID& id); /** * Mute/unmute avatar. diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 3a772a8104e62f2fcadd5aaa5e9dbed2f5ce9c81..4933b0d25e95bdb5c4cc1de407ae6a83bf4bec9b 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -276,8 +276,8 @@ BOOL LLPanelProfileSecondLife::postBuild() mTeleportButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::onTeleportButtonClick, this)); mShowOnMapButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::onMapButtonClick, this)); mPayButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::pay, this)); - mBlockButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::toggleBlock,this)); - mUnblockButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::toggleBlock,this)); + mBlockButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::onClickToggleBlock, this)); + mUnblockButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::onClickToggleBlock, this)); mGroupInviteButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::onGroupInvite,this)); mDisplayNameButton->setCommitCallback(boost::bind(&LLPanelProfileSecondLife::onClickSetName, this)); @@ -519,11 +519,20 @@ void LLPanelProfileSecondLife::pay() LLAvatarActions::pay(getAvatarId()); } -void LLPanelProfileSecondLife::toggleBlock() +void LLPanelProfileSecondLife::onClickToggleBlock() { - LLAvatarActions::toggleBlock(getAvatarId()); + bool blocked = LLAvatarActions::toggleBlock(getAvatarId()); updateButtons(); + // we are hiding one button and showing another, set focus + if (blocked) + { + mUnblockButton->setFocus(true); + } + else + { + mBlockButton->setFocus(true); + } } void LLPanelProfileSecondLife::onAddFriendButtonClick() diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h index d9b70a7f35cb8531109ab24ed85254ddb445f253..34d9045b2f1c8b1db3cb7dcc7d2de5c911a57de3 100644 --- a/indra/newview/llpanelprofile.h +++ b/indra/newview/llpanelprofile.h @@ -138,8 +138,9 @@ class LLPanelProfileSecondLife /** * Add/remove resident to/from your block list. + * Updates button focus */ - void toggleBlock(); + void onClickToggleBlock(); void onAddFriendButtonClick(); void onIMButtonClick(); diff --git a/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml b/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml index b6d767bbbaa0790dd53f6fee819cc409086b95bb..1232439b1e72b794ff78dae2f8b4e8482c23cbdf 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml @@ -438,7 +438,7 @@ label="Unblock" tool_tip="Unblock this Resident" top_delta="0" - right="-40" + height="20" follows="left|top|right" layout="topleft" />