summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llfloaterreg.cpp7
-rw-r--r--indra/llui/llsdparam.h1
2 files changed, 6 insertions, 2 deletions
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index 4677d535db..f5e6444287 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -129,7 +129,10 @@ LLFloater* LLFloaterReg::getInstance(const std::string& name, const LLSD& key)
}
// Note: key should eventually be a non optional LLFloater arg; for now, set mKey to be safe
- res->mKey = key;
+ if (res->mKey.isUndefined())
+ {
+ res->mKey = key;
+ }
res->setInstanceName(name);
res->applySavedVariables(); // Can't apply rect and dock state until setting instance name
if (res->mAutoTile && !res->getHost() && index > 0)
@@ -221,7 +224,7 @@ LLFloater* LLFloaterReg::showInstance(const std::string& name, const LLSD& key,
LLFloater* instance = getInstance(name, key);
if (instance)
{
- instance->openFloater(key);
+ instance->openFloater(instance->mKey);
if (focus)
instance->setFocus(TRUE);
}
diff --git a/indra/llui/llsdparam.h b/indra/llui/llsdparam.h
index 827b8c8584..f776c781b3 100644
--- a/indra/llui/llsdparam.h
+++ b/indra/llui/llsdparam.h
@@ -103,6 +103,7 @@ class LLSDParamAdapter : public T
}
LLSDParamAdapter(const T& val)
+ : T(val)
{
T::operator=(val);
}