1. mumurik
  2. xyzzy
Issue #33 resolved

*delete-frame-functions*が正常に動作しない場合がある

xyzzy_17_638
created an issue

== 再現方法 == 1. コマンドライン {{{xyzzy.exe -q}}} を実行

  1. {{{scratch}}} バッファで

{{{ (add-hook 'ed:delete-frame-functions (lambda (frame) (msgbox "delefe-frame-functions : ~A" frame))) (make-frame) }}} を実行

  1. 新しくできたフレームのクローズボタンを押す

== 期待する動作 == ダイアログ "delete-frame-functions <ハッシュ値>" が表示される

== 実際の動作 == 何も起きない(エラーも起きない。ステータスバー等にも何も出ない)

== 再現バージョン == * 0.2.3.7

== 備考 == delete-frame でフレームを消した場合は期待するダイアログが出る。

Comments (2)

  1. xyzzy_17_638 reporter

    frame.cc:Fdelete_frame()ではVdelete_frame_functionsの処理が行われていますが、 toplev.cc:toplev_wndproc()WM_CLOSEではVdelete_frame_functionsの処理が行われていない のが原因のようです。

    WM_CLOSE側でBuffer::kill_xyzzy()の代わりにFdelete_frame()を呼び出して、 Fdelete_frame()に全部任せたほうが良いのかな、と思います。

  2. Log in to comment