Open knoajp opened 7 years ago
左右のスクロールはてっきり標準で用意されている動作だと思っていたのですが、わたしの勘違いで、自分で書いていたスクリプトで実現させていたことでした。 下記のように書き直すことで、e10s有効環境下でも動作させることができました。お騒がせしてすみません。
var mm = gBrowser.selectedBrowser.messageManager;
mm.loadFrameScript('data:,' + encodeURIComponent((function(){
content.scrollBy(100,0);
}).toSource() + '()'), true);
ただ、先の投稿の最後のほうに書いた要望は生きています。 ホイールジェスチャのホイール回転について、「右クリックを押し続けたまま」上方向にも下方向にも発動させられると便利です。
content.scrollBy(100,0); この100を-100に変えたスクリプトを上方向のホイールジェスチャに割り当てすれば良いのではないでしょうか。
ありがとうございます。上手く伝わらなくてすみません。 -100に割り当てたスクリプトはもちろんユーザースクリプトとして登録してありますし、それをホイールジェスチャの上スクロールにも割り当てています。その上で、
ということです。 が、いま改めて検証して気付いたのですが、4.の瞬間に「ジェスチャのタイムアウト」時間が経過してしまっていたのが原因でした。0.5秒と短めに設定しているのも災いしたようです。
右クリックしたままホイールの上下でひょいひょい微調整できると便利なので、個人的にはホイールジェスチャのみタイムアウトを無視してくれるといいなと思いますが、レアケースだと思いますし仕様的にも例外を設けるのは美しくない気がしますので、あきらめることにします。(タイムアウトを1秒にするなど、意図的にジェスチャをキャンセルしたいときの待ち時間との、ベストバランスを模索します)
まことにお騒がせしてしまいました。ありがとうございました。
(実際には下記のようにスムーズにスクロールさせています)
var mm = gBrowser.selectedBrowser.messageManager;
mm.loadFrameScript('data:,' + encodeURIComponent((function(){
let i = 10;
let id = setInterval(function(){
content.scrollBy(10,0);
if(--i===0) clearInterval(id);
}, 1000/100);
}).toSource() + '()'), true);
I assign wheel gestures to left/right scrolling. But it doesn't work on e10s being on, with error message(window.content is null).
By the way, FireGestures' wheel scrolling with right click is just one-way scroling; I mean, if I start RIGHTward scrolling with wheel gesture, I can't scroll backward(LEFTward) without "mouseup". I want scroll left/right with remaining mousedown.
*
in Japanese: ホイールジェスチャを左右のスクローに割り当てて使用していましたが、 e10sを有効にしていると(window.content is null)とのエラーが出て動きません。
ところで、FireGesturesのホイールジェスチャによる左右スクロールは一方通行ですね。 すなわち、ひとたび右ボタンを押してから「右」方向にスクロールさせると、 押した右ボタンを離さない限りは「左」方向に戻すスクロールができません。 右ボタンを押したまま、上下のホイールで自在に左右にスクロールさせられるとうれしいです。