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

[MD:1197]Meadow-1.04a1 freeze with elisp code?



Shun-ichi GOTO <gotoh@xxxxxxxxxxx> writes:

> というのも、Xtの場合はメニューバーをクリックした時点で
> prepare_menu_bars()が実行され、その時点でkeymap評価が行われますが、
> Meadowでは(Win32のmenuの事情かとは思いますが)このタイミングでは評価され
> ません。elsp-manual-20.2.5 の Menu keymapsあたりを*ざざっと*読む限りは
> popup時に評価されなければいかないような*気がする*のですが。。。このへん
> の動作タイミングは本当のところは「Emacsの仕様」として決められているので
> しょうか。。。よくわからん。

うーん、そういう「仕様」が、あるとなると考えますけど。...;_;

で、上には少し間違いが含まれています。prepare_menu_barはEmacsの状態が
変更するたびに呼ばれ、その度ごとにkeymapの評価が行われます。

> これがどういう影響があるかというと、例えばMewのdraftモードでmulti-part 
> メッセージの編集をしているときあらわれます。draftモードではpartを追加し
> たり、partをencriptしたりするいくつかのコマンドがメニューから選択できま
> すが、これはカーソル位置に応じてダイナミックにenable/disableをしています。
> そして、Xtの場合は期待通りの動作をしますが、Meadowの場合はmenu itemの
> enable/disable の変化が期待したものと違ったものになってしまっています。

うーむ、なるほど、なんのことはなく、menu_bar_activate_eventを
MENU描画前に送り、描画を遅らせれば良いだけの事のようです。

忘れていただけです。Meadow.plan行きですね。1.04a2で直しましょう。

from himi