summaryrefslogtreecommitdiff
path: root/indra/media_plugins/webkit/media_plugin_webkit.cpp
diff options
context:
space:
mode:
authorMonroe Linden <monroe@lindenlab.com>2009-12-01 18:27:09 -0800
committerMonroe Linden <monroe@lindenlab.com>2009-12-01 18:27:09 -0800
commit1db0d32133f97b03a632f03fa78e198b7f00866b (patch)
treef24b2b5c7a9560178216a71f9e2d673f90cc361d /indra/media_plugins/webkit/media_plugin_webkit.cpp
parent96fa076a05b53d9bf8b488b2d213d4d528120a26 (diff)
Partial fix for EXT-2904/DEV-43584 (Space bar and Enter/Return key don't work as input for checkboxes or buttons on MoaP).
This change forces space characters to go through the keyEvent() path instead of the unicodeInput() path, which makes the space bar work for setting checkboxes. I still need to figure out what's going on with the enter key.
Diffstat (limited to 'indra/media_plugins/webkit/media_plugin_webkit.cpp')
-rw-r--r--indra/media_plugins/webkit/media_plugin_webkit.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp
index 30c7483229..25f4c8720a 100644
--- a/indra/media_plugins/webkit/media_plugin_webkit.cpp
+++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp
@@ -497,7 +497,16 @@ private:
{
// std::cerr << "unicode input, code = 0x" << std::hex << (unsigned long)(wstr[i]) << std::dec << std::endl;
- LLQtWebKit::getInstance()->unicodeInput(mBrowserWindowId, wstr[i], modifiers);
+ if(wstr[i] == 32)
+ {
+ // For some reason, the webkit plugin really wants the space bar to come in through the key-event path, not the unicode path.
+ LLQtWebKit::getInstance()->keyEvent( mBrowserWindowId, LLQtWebKit::KE_KEY_DOWN, 32, modifiers);
+ LLQtWebKit::getInstance()->keyEvent( mBrowserWindowId, LLQtWebKit::KE_KEY_UP, 32, modifiers);
+ }
+ else
+ {
+ LLQtWebKit::getInstance()->unicodeInput(mBrowserWindowId, wstr[i], modifiers);
+ }
}
checkEditState();