Hatena::Groupkeysnail

hogelogの日記

 | 

2010-03-04

hook-menu-popup.ks.js 0.0.2

13:01

以下のフックポイントをKeySnailに追加するプラグインを書きました。

  • MenuPopupShowing
  • MenuPopupHiding
  • MainMenuPopupShowing
  • MainMenuPopupHiding
  • ContextMenuPopupShowing
  • ContextMenuPopupHiding

http://github.com/hogelog/keysnail-plugins/blob/master/hook-menu-popup.ks.js

MainMenuPopupはメニューバーのメニュー、ContextMenuPopupは右クリックメニューへのフックです。これらのフックは他のフックポイントなどと同様にhook.setHook、hook.addToHookなどから利用できます。


私は以下のようにメニュー表示時はkeysnailを一時的に停止するために使っています。

function stopKeySnail (ev) {
    key.suspended = true;
}
function restartKeySnail (ev) {
    key.suspended = false;
}
hook.setHook('MenuPopupShowing', stopKeySnail);
hook.setHook('MenuPopupHiding', restartKeySnail);

というかこのために作ったのですけども。

余談: addEventListenerに渡す関数

EventTarget.addEventListener - Web API インターフェイス | MDN

オブジェクトプロパティを渡すとthisがaddEventListenerを実行した時のそれになる。のでそれを回避しようと無名関数にくるんで渡すと無名関数アクセスできる変数全てを保持しておく必要があるからメモリ使用量が増大する、という意味だろうか。

とりあえず普通の関数にしておいてついでにremoveEventListenerしておくようにすれば問題ないのだろうけど。いまいち意味がわからない。EventListenerに起因する不具合はよく聞くような気がするのでこの辺の仕様を把握しておきたい。

MelloneyMelloney2011/12/11 09:55A million tnhkas for posting this information.

lhmaugmxzlhmaugmxz2011/12/11 17:10t8E2CF <a href="http://yilgumouqdmp.com/">yilgumouqdmp</a>

usunzewusunzew2011/12/11 21:47zdYsSS , [url=http://vvhduahiatpd.com/]vvhduahiatpd[/url], [link=http://epqzipsjsfsw.com/]epqzipsjsfsw[/link], http://rcgxzuglojau.com/

oecmnhctmnoecmnhctmn2011/12/13 19:53tG0JYV <a href="http://ojuwsagygqvx.com/">ojuwsagygqvx</a>

mrfjtotyamrfjtotya2011/12/14 00:12InBLii , [url=http://jxurzdlywjzd.com/]jxurzdlywjzd[/url], [link=http://llvcgponxaip.com/]llvcgponxaip[/link], http://yadzkfalnpgd.com/

 |