Редактировать : В дополнение к награде мы готовы заплатить 250 долларов США за исправление этой ошибки в кодовой базе Firefox / Gecko. Вот простой тестовый проект (Visual Studio 2008 C #), который воспроизводит проблему.
Edit # 2 мы готовы заплатить 600 долларов, чтобы исправить эту ошибку. См. Выше пример проекта, который воспроизводит проблему.
У нас есть элемент управления ActiveX Firefox (Gecko) в нашей форме C # Windows для отображения HTML.
Когда этот элемент управления Firefox ActiveX находится в нашей форме, около 2-3% нажатий клавиш не проходят. Или, скорее, отправлено другое сообщение Windows:
Мы удерживаем клавишу TAB для перехода по трем обычным текстовым полям WinForms. Это будет вести себя правильно в 97% случаев. Spy ++ сообщает нам, что сообщение WM_KEYDOWN отправлено правильно:
нормальное поведение http://judahhimango.com/images/normaltab.jpg
Но случайно, возможно, в 2-3% случаев клавиша табуляции (или другая клавиша) обрабатывается неправильно. Spy ++ сообщает нам, что вместо этого отправляется WM_CHAR:
странное поведение http://judahhimango.com/images/screwytab.png
Когда происходит странное поведение, либо ключ вообще не обрабатывается, либо обрабатывается неправильно (например, вставка символа '\ t' в текстовое поле, которое не поддерживает символы табуляции.
Это происходит только в том случае, если в нашей форме находится элемент управления Firefox ActiveX.
Наш вопрос : устанавливает ли движок Firefox / Gecko какую-либо зацепку для клавиатуры, которая может вызвать эти побочные эффекты? Или еще лучше, как мы можем решить эту проблему?