>>>>> In [emacs-w3m : No.05821] 山岡 wrote: > たぶん Emacs 21 でも spinner が表示されるようになったと思うんで > すが、いかがでしょ? header-line の画像を再描画する方法をいろいろ探していまして、最初 に見つけたのが clear-image-cache という関数でした。しかしこれは 有効な cache まで消してしまうし、頻繁に使っている最中に別の画像 を表示しようとすると、ほぼ確実に Emacs が segfault で落ちます。 一方 image-cache を消さないと再描画してくれないのは、同じ画像デー タの :index 項だけを変えているのが原因ではないかと思ったので、毎 回 create-image() を使うようにしたところ、少し進展しました。 clear-image-cache() の使用が再描画に有効だったのは、この関数が windows_or_buffers_changed をいじっているかららしく、同様の他の ELisp から呼べる関数を探して、現在は header-line の再描画を次の 式で行なっています。 (let ((window-min-height 0)) (shrink-window 1) (enlarge-window 1)) でも Windows や Mac ではちゃんと動いているんでしょうか? ^^;; 以下は、ぼくの環境では動く spinner のテストプログラムです:
Attachment:
bin00200.bin
Description: application/emacs-lisp