タグ

ブックマーク / www.xuldev.org (3)

  • SCRAPBLOG : 待望の document.elementFromPoint が実装

    待望の document.elementFromPoint が Firefox 3.0a8pre にて実装された。仕様は nsIDOMNSDocument.idl に詳しく書いてあるが、おおよそ以下の通りである。 HTML, XUL どちらの document に対しても使用可能 document の左上を (0, 0) とし、位置 (x, y) にある実際に見えている要素を取得する 同一の document 内に存在する要素のみ取得可能。例えばインナーフレーム内の document 内に存在する要素は取得できず、代わりに iframe 要素を返す。 位置 (x, y) が document の可視領域の外側にある場合、null を返す。 XUL document で使用する場合、例えば textbox 要素のスクロールバーのように XBL で生成された無名要素は取得できない。この場合、

  • SCRAPBLOG : [userChrome.js] 軽量マウスジェスチャ

    マウスジェスチャ機能は欲しいけど、All-in-One Gestures や Optimoz Mouse Gestures は余計な機能が多すぎる。AiOGから不要な機能を取っ払ってスリム化させようと試みたが、ソースコードが複雑すぎてやる気が失せた。そこで自分で一から考えて作ってみた結果、200行にも満たない userChrome.js 用スクリプトとして実装することができた。 xuldev.org :: userChrome.js scripts » Mouse Gestures 特徴 マウストレイル(軌跡の描画)は重くなる原因なのであきらめた。とはいえ AiOG から trails.js を借りてきて一工夫すれば実装可能です。 ジェスチャによって実行される処理は、極力ブラウザ体に実装されたコマンドを呼び出すようにしている。 設定用GUIは無いが、スクリプトを直接編集することで無駄なく

  • SCRAPBLOG : [userChrome.js] 軽量マウスジェスチャをWindowsとLinuxに両対応させる

    後で contextmenu イベントを擬似的に発生させる必要があるかどうか。 Linux 専用。 Linux の場合は mousedown イベント直後に contextmenu イベントが発生するが、これを抑止した際にフラグを true にしておき、その後の mouseup イベント発生時にフラグが立っていれば擬似的に contextmenu を発生させる。 これによってスクリプトの一部は以下のように変更された。青色の部分が Linux 専用となる処理である。 _isMouseDown: false, _suppressContext: false, _shouldFireContext: false, handleEvent: function(event) { switch (event.type) { case "mousedown": // [1] ジェスチャ開始 if (ev

  • 1