Доброе время суток.
Проблема в следующем: некогда, под версию FF 3.0.* я написал некое расширение, исключительно для собственных нужд. Нужные функции расширения срабатывали как по hotkeys, так и по клику кнопки на тулбаре. После перехода на версию 3.5 hotkeys работать перестали, хотя само расширение вполне работает по клику на кнопке - что, однако, несколько неудобно. В чем здесь заключается причина, и как сие исправить? Код оверлея таков:

Выделить код

Код:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://skl/skin/skl.css" type="text/css"?>
<overlay id="skl-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<script type="application/x-javascript" src="chrome://skl/content/skl.js" />
	<toolbarpalette id="BrowserToolbarPalette">
		<keyset id="sklKeyset">
		    <key id="key_repair" modifiers="alt" key="x" oncommand="repair(true)" disabled="false" />
		    <key id="key_casing" modifiers="alt" key="z" oncommand="repair(false)" disabled="false" />
		</keyset>
                <toolbarbutton id="myextension-button" label="Switch LС" type="menu" ToolTipText="Switch LС">
                    <menupopup>
                        <menuitem label="Switch Layout" accesskey="x"
                                  tooltiptext="Switch Layout"
                                  oncommand="repair(true)" />
                        <menuseparator />
                        <menuitem label="Switch Case" accesskey="z"
                                  tooltiptext="Switch Case"
                                  oncommand="repair(false)" />
                    </menupopup>
                </toolbarbutton>
	</toolbarpalette>
</overlay>

Код скрипта, я думаю, здесь некритичен, но, если понадобится - могу привести (как я уже писал выше, он вполне корректно отрабатывает при нажатии кнопки тулбара).

hydrolizer
keyset надо поместить внутрь toolbarbutton или до toolbarpalette

Anton
keyset до toolbarpalette - не сработало, а вот внутрь toolbarbutton - вполне, сейчас всё работает. как надо, спасибо.
И еще один вопрос: дело в том, что желаемый функционал в расширении был реализован не до конца. Оно задумывалось как некий аналог punto switcher (который сам по себе я не люблю, и не использую), но только внутри FF, и, соответственно, должно было переводить в нужную раскладку текст, набранный в неправильной раскладке (xnj-nj nbgf nfrjuj->что-то типа такого), и переключать саму раскладку клавиатуры. Поскольку такового расширения на AMO я не отыскал, то решил реализовать сам. С первой частью более-менее управился, а вот со второй.. в принципе, я знаю, как переключить раскладку с помощью Win32API, но как до него достучаться из FF? XPCOM? Или существуют какие-то другие способы? В какую сторону копать?

hydrolizer пишет

XPCOM?

Разве что бинарный. jsxpcom, напрямую вряд ли может переключить раскладку.

В какую сторону копать?

Скорее всего, только в сторону передачи управления какой-нибудь программе-"переключалке" с помощью nsIProcess.