diff options
author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2024-05-15 18:50:51 +0300 |
---|---|---|
committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2024-05-15 18:50:51 +0300 |
commit | 9f540f10e687bb3889de191afbae3b52cc21f415 (patch) | |
tree | 48f561539193be6993dfd40e853a67b01cdb1812 /indra/llui/lluictrl.cpp | |
parent | cec3b8d870085925cd0c9fb900b7d5e4629bcbfd (diff) |
Add trusted flag to UI callbacks, so not everything is accessible from the script
Diffstat (limited to 'indra/llui/lluictrl.cpp')
-rw-r--r-- | indra/llui/lluictrl.cpp | 8 |
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; |