基本的な実装は完了。概ね上手く行った。
デライトは作業効率化のためマウスオーバーの事象を多用しているが,マウスポインタが一瞬素通りしただけでも通注が表示されたり,引き入れ欄が開いたり輪符が展開したりとかなり落ち着きのない用合いになっていた。
事象判定を遅来させる仕組みは昨年8月16日3歩でも検討しているが,見通しと取り回しの良い実装が見つからず保留していた。
昨日,全知検索窓の不具合修正で使った「2時点間でのマウスポインタの位置変化」という判定方法を寝る前になって思いつき,今日それをネズミ捕り(mousetrap)にかけて概念化したのが @trap() だった。
例えば @trap( ms, evt, Fn ) で ms ミリ秒後に事象 evt のマウスポインタの位置と現在位置が同じなら函数 Fn を実行する。これを mousemove と組み合せると,一定時間マウスオーバーという事象を疑似的に表現出来る。
@doc で現在位置を記録しておく交度の追加は必要だったが,後はこの函数を一つ挟むだけでどこでも使えるのが大きい。
この種の遅来は長くて数秒なので,一定時間マウスを動かさないことよりも,一定時間後に同じ位置にマウスポインタがあることを判定すれば実用上は十分だ。
通注等に適当な時間を設定してみると,かなり雑音が減った感がある。
スクリプトを弄っているうちにあちこち修正したいところが出てきたため,細かい時間設定などは後回し。