summaryrefslogtreecommitdiff
path: root/indra/llui/lluictrl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui/lluictrl.cpp')
-rw-r--r--indra/llui/lluictrl.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp
index 7eb9ae69fb..ee41d20d7a 100644
--- a/indra/llui/lluictrl.cpp
+++ b/indra/llui/lluictrl.cpp
@@ -284,6 +284,7 @@ LLUICtrl::commit_signal_t::slot_type LLUICtrl::initCommitCallback(const CommitCa
std::string function_name = cb.function_name;
setFunctionName(function_name);
commit_callback_t* func = (CommitCallbackRegistry::getValue(function_name));
+ LLUICtrl::LLCommitCallbackInfo* info = LLUICtrl::SharedCommitCallbackRegistry::getValue(function_name);
if (func)
{
if (cb.parameter.isProvided())
@@ -291,6 +292,13 @@ LLUICtrl::commit_signal_t::slot_type LLUICtrl::initCommitCallback(const CommitCa
else
return commit_signal_t::slot_type(*func);
}
+ else if (info && info->callback_func)
+ {
+ if (cb.parameter.isProvided())
+ return boost::bind((info->callback_func), _1, cb.parameter);
+ else
+ return commit_signal_t::slot_type(info->callback_func);
+ }
else if (!function_name.empty())
{
LL_WARNS() << "No callback found for: '" << function_name << "' in control: " << getName() << LL_ENDL;