Решено: xulrunner (помогите разобраться)

Модератор: Модераторы разделов

dhampire
Сообщения: 409
ОС: arch x86_64

Решено: xulrunner

Сообщение dhampire »

Суть проблемы: существует такой плагин для firefox скрывающий меню(hidemenubar).
В нем по умолчанию на показ меню, в случае необходимости его, назначена клавиша alt(и alt left и alt right), что
для меня не совсем удобно(переключение между виртуальными десктопами alt+f1,alt+f2 и т.д.), поэтому хочу сделать такую замену alt->ctrl(например).

редактировать надо hidemenubar.xul
код который отвечает за хоткей(возможно не весь, так как я плохо знаком с xul):

Код:

window.addEventListener("keydown", function(event){ if ((event.keyCode == 18) && !event.ctrlKey && !event.shiftKey && !event.metaKey) { toolbar.altKey = true; } else { toolbar.altKey = false; } } , true); window.addEventListener("keyup", function(event){ if ((event.keyCode == 18) && !event.ctrlKey && !event.shiftKey && !event.metaKey && toolbar.altKey) { toolbar.altKey = false; if (toolbar.autohide || window.fullScreen) toolbar.collapsed = !toolbar.collapsed; } } , true); window.addEventListener("keypress", function(event){ if (event.altKey && toolbar.collapsed) { for (var i=0; i<menubar.childNodes.length; i++) { var m = menubar.childNodes[i]; var a = m.getAttribute("accesskey").toLowerCase(); var c = String.fromCharCode(event.charCode); if ((m.localName == "menu") && (a == c)) { toolbar.altKey = false; toolbar.collapsed = false; m.lastChild.showPopup(); event.stopPropagation(); break; } } } } , true);


Не особо понятные мне подстроки выделены.
Просьба объяснить, что они означают и попутно можно подсказать хороший мануал по xulrunner'y на русском языке.
Сейчас просматриваю мануал на сайте мозиллы(но там все на английском :( )
P.S. Писать за меня код не прошу.
P.S.S. Просьба в гугл не слать :)
Спасибо сказали:
pcodr
Сообщения: 283
ОС: Debian

Re: Решено: xulrunner

Сообщение pcodr »

18 - это код ALT
17 - это код CTRL
Так что видимо вам нужно заменить везде 18 на 17 и поменять между собой *.altKey и *.ctrlKey.

Хорошая книжка по Firefox - Programming Firefox издательства O'Reilly, сам планирую изучить как время будет, правда она на английском.
remote system type is unix
Спасибо сказали:
dhampire
Сообщения: 409
ОС: arch x86_64

Re: Решено: xulrunner

Сообщение dhampire »

pcodr писал(а): ↑
07.06.2009 21:58
18 - это код ALT
17 - это код CTRL
Так что видимо вам нужно заменить везде 18 на 17 и поменять между собой *.altKey и *.ctrlKey.

Хорошая книжка по Firefox - Programming Firefox издательства O'Reilly, сам планирую изучить как время будет, правда она на английском.


все заработало как надо мне ;)

Код:

# hidemenubar1.xul - исходный файл # hidemenubar.xul - измененный файл --- hidemenubar1.xul 2009-06-08 10:24:17.000000000 +0400 +++ hidemenubar.xul 2009-06-07 22:32:32.000000000 +0400 @@ -116,30 +116,30 @@ window.addEventListener("keydown", function(event){ - if ((event.keyCode == 18) && !event.ctrlKey && !event.shiftKey && !event.metaKey) { - toolbar.altKey = true; + if ((event.keyCode == 17) && !event.altKey && !event.shiftKey && !event.metaKey) { + toolbar.ctrlKey = true; } else { - toolbar.altKey = false; + toolbar.ctrlKey = false; } } , true); window.addEventListener("keyup", function(event){ - if ((event.keyCode == 18) && !event.ctrlKey && !event.shiftKey && !event.metaKey && toolbar.altKey) { - toolbar.altKey = false; + if ((event.keyCode == 17) && !event.altKey && !event.shiftKey && !event.metaKey && toolbar.ctrlKey) { + toolbar.ctrlKey = false; if (toolbar.autohide || window.fullScreen) toolbar.collapsed = !toolbar.collapsed; } } , true); window.addEventListener("keypress", function(event){ - if (event.altKey && toolbar.collapsed) { + if (event.ctrlKey && toolbar.collapsed) { for (var i=0; i<menubar.childNodes.length; i++) { var m = menubar.childNodes[i]; var a = m.getAttribute("accesskey").toLowerCase(); var c = String.fromCharCode(event.charCode); if ((m.localName == "menu") && (a == c)) { - toolbar.altKey = false; + toolbar.ctrlKey = false; toolbar.collapsed = false; m.lastChild.showPopup(); event.stopPropagation(); @@ -159,7 +159,7 @@ function tryHideMenubar(){ if ((!toolbar.autohide) && (!window.fullScreen)) return; - if (toolbar.hasMouseOver || toolbar.hasPopup || toolbar.collapsed || toolbar.altKey) return; + if (toolbar.hasMouseOver || toolbar.hasPopup || toolbar.collapsed || toolbar.ctrlKey) return; if (toolbar.hasAttribute("customizing-collapsed")) return; for (var i=0; i<menubar.childNodes.length; i++) { if (menubar.childNodes[i].getAttribute("_moz-menuactive")) return;


тему можно закрыть.
Спасибо сказали: