summaryrefslogtreecommitdiff
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
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.
-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();