[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:5912] Re: visible-bell の X 版振舞いが欲しい



藤井です。

From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxx>
Subject: Re: [MD:5912] Re: visible-bell の X 版振舞いが欲しい
Date: Tue, 02 Nov 2004 01:20:11 +0900
> 藤井> PostMessage 相当を SendMessage 相当に変更するという対応も考えられるの
> 藤井> ですが、これだと sleep するのとそう変わらないような気がするので、そう
> 藤井> していません。
> 
> 藤井さんの patch だと、メインスレッドで BitBlt() 等の描画関数を実
> 行することになるのが気になります。
> メッセージスレッドとの競合がちょっと心配。描画用のリソースが変更さ
> れた場合とか、同時に描画された場合にどうなるかよく分かりません。

確かにこのあたりのことは気になりますので、メッセージスレッドで描画する
ことにしました。

変更の概要は以下のとおりです。

1. WM_EMACS_FLASH_WINDOW において、フラッシュの仕方を指定するパラメータ
   を導入し、WPARAM に割り当てました。
   パラメータの値は mw32term.h に enum 型として定義しました。

2. mw32fns.c に mw32m_flash_window を追加して、X 風の場合にはこちらで描
   画することにしました。

3. 従来通り PostMessage でメッセージを送ると、メッセージスレッドで反転
   させている間にメインスレッドで別の描画を行なうと正常に元に戻せなくな
   ります。この対策としてメッセージは SendMessage で行ない、メッセージ
   処理までメインスレッドはブロックさせるようにしました。ただし、従来の
   FlashWindow API によるフラッシュは従来のまま PostMessage を用いてい
   ます。

問題があるようでしたらご指摘ください。

--
藤井 正行 / Masayuki FUJII ( boochang@xxxxxxxxxxxx )