Fix annoyance of duplicated rights confirmation dialog when checking a checkbox prior selecting the row in legacy friend list

Ansariel 2014-12-16 15:36:05 +01:00
parent c8c3809817
commit 6c2d0240bc
2 changed files with 15 additions and 4 deletions

View File

@ -86,7 +86,8 @@ FSFloaterContacts::FSFloaterContacts(const LLSD& seed)
mObserver(NULL),
mFriendsList(NULL),
mGroupList(NULL),
mAllowRightsChange(TRUE),
mAllowRightsChange(true),
mRightsChangeNotificationTriggered(false),
mNumRightsChanged(0),
mRlvBehaviorCallbackConnection(),
mResetLastColumnDisplayModeChanged(false),
@ -191,6 +192,8 @@ void FSFloaterContacts::draw()
mDirtyNames = false;
}
mRightsChangeNotificationTriggered = false;
LLFloater::draw();
}
@ -553,11 +556,11 @@ void FSFloaterContacts::onFriendListUpdate(U32 changed_mask)
--mNumRightsChanged;
if (mNumRightsChanged > 0)
{
mAllowRightsChange = FALSE;
mAllowRightsChange = false;
}
else
{
mAllowRightsChange = TRUE;
mAllowRightsChange = true;
}
const std::set<LLUUID>& changed_items = at.getChangedIDs();
@ -905,6 +908,7 @@ void FSFloaterContacts::confirmModifyRights(rights_map_t& ids, EGrantRevoke comm
}
}
}
}
bool FSFloaterContacts::modifyRightsConfirmation(const LLSD& notification, const LLSD& response, rights_map_t* rights)
@ -932,6 +936,11 @@ bool FSFloaterContacts::modifyRightsConfirmation(const LLSD& notification, const
void FSFloaterContacts::applyRightsToFriends()
{
if (mRightsChangeNotificationTriggered)
{
return;
}
bool rights_changed = false;
// store modify rights separately for confirmation
@ -1019,6 +1028,7 @@ void FSFloaterContacts::applyRightsToFriends()
if (need_confirmation)
{
confirmModifyRights(rights_updates, confirmation_type);
mRightsChangeNotificationTriggered = true;
}
else
{

View File

@ -145,8 +145,9 @@ private:
LLTabContainer* mTabContainer;
LLFriendObserver* mObserver;
BOOL mAllowRightsChange;
bool mAllowRightsChange;
S32 mNumRightsChanged;
bool mRightsChangeNotificationTriggered;
std::string mFriendListFontName;