summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexanderP ProductEngine <apaschenko@productengine.com>2012-05-03 19:40:45 +0300
committerAlexanderP ProductEngine <apaschenko@productengine.com>2012-05-03 19:40:45 +0300
commitd9b915f09b4f9db0aa16d88dd4a7d5fb4980dc34 (patch)
tree7c866ba88b4ca3ce7d23eec1f3d1cb0e83ab32aa
parent423659c68076f99a73985b9bd1befa5c0f5d3457 (diff)
MAINT-869 FIXED The object is marked as dead before it was removed from the selection.
-rwxr-xr-xindra/newview/llviewermessage.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 18efeaf9e3..ce0e3067fb 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -4299,8 +4299,6 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
LL_DEBUGS("Messaging") << "Kill message for local " << local_id << LL_ENDL;
}
- LLSelectMgr::getInstance()->removeObjectFromSelections(id);
-
// ...don't kill the avatar
if (!(id == gAgentID))
{
@@ -4323,6 +4321,12 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
gObjectList.mNumUnknownKills++;
}
}
+
+ // We should remove the object from selection after it is marked dead by gObjectList to make LLToolGrab,
+ // which is using the object, release the mouse capture correctly when the object dies.
+ // See LLToolGrab::handleHoverActive() and LLToolGrab::handleHoverNonPhysical().
+ LLSelectMgr::getInstance()->removeObjectFromSelections(id);
+
}
}