[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: w3m-view-this-url-new-session-in-background
[emacs-w3m:07242] で Christian Ruediger Bahls さんが提起した問題
に関して、2年以上も前の議題を蒸し返します。:)
>>>>> In [emacs-w3m : No.03796] 寺西さん wrote:
>> w3m-view-this-url-new-session-in-background という新規オプションを設け、
>> non-nil なら w3m-view-this-url-new-session でリンクをたどったときに
>> バッファを移動しないようにしてみました (幹)。(default は nil)
> w3m-view-this-url-new-session-in-background を non-nil にすると、
> Shift+RET などでリンクをたどっても、バッファスイッチが起きないためか、
> C-l などを押さないとタブ行が描き変わりません。
このための対策として、現在 w3m-e21.el に以下の関数があります。
(defun w3m-update-tab-line ()
"Update tab line."
(when w3m-use-tab
(set-cursor-color (frame-parameter (selected-frame) 'cursor-color))))
これは、カーソルに同じ色を設定することによって、Emacs の副作用で
タブ行の表示を更新させることを意図しています。ところが、ユーザが
意図的にカーソル色を変更していない場合、
(frame-parameter (selected-frame) 'cursor-color)
は常に black を返すことがわかりました。したがって背景色が black
になっている Emacs で上記の関数を実行すると、カーソルが見えなく
なってしまいます。どうやら Emacs 21.1 以上で使える別の方法を探す
必要がありそうです。Christian Ruediger Bahls さんには、とりあえ
ずカーソル色を明示的に指定してもらうようにお願いしておきました。
カーソル色が default face の bg色と同じだったら、代わりに
default face の fg色を使うというのも考えてみました。
(defun w3m-update-tab-line ()
"Update tab line."
(when w3m-use-tab
(set-cursor-color
(let ((cursor-color (frame-parameter (selected-frame) 'cursor-color)))
(if (equal (color-values cursor-color)
(color-values (face-background 'default)))
(face-foreground 'default)
cursor-color)))))
でも default face の bg色が、black ではないけれども非常に暗い色
だった場合は破綻します。
というわけで、妙案を募集します。この際、妙な案でもいいです。:)