次の三カ所でしか操作・参照されていませんでした。
OnDeselectCatapult はその名前とは異なり wxActivateEvent::GetActive() によるチェックを行っていません。
三カ所とも途中で wxNotebook の各ページにある CatapultPage::HandleFocusChange() を呼び出しているのですが、この仮想関数を override しているのは SessionPage だけです。
SessionPage::HandleFocusChange() では checkLooseFocus(), insertMediaClear(), insertMedia() を通して何かをやっているようなのですが、なぜこのような操作が必要なのかを完全には理解していなかったかもしれません。
checkLooseFocus() の内容は focus が変わった際に直前の focus がメディアに対応した wxComboBox と同じで、かつその wxComboBox の現在値が過去の insertMedia() で記録した lastContents と異なる場合に insertMediaClear() を呼び出すというものです。これは直接入力中の文字列が drop down で選べるどの項目とも異なる場合に該当しそうです。これらの wxComboBox はファイルの履歴表示に使われているものです。
該当部分の wxComboBox には file path を直接入力できるので、その入力途中に focus が失われると何か具合が悪いという趣旨だったのかもしれません。
実のところ手段が不適切と言ってよいと思われるため、関連部分全体を削除しました。wxComboBox の文字入力部分が drop down のいずれとも一致しないことは履歴保存なり openMSX 本体の呼出時なりに検査するべきであって、まして active ではなくなったからと言って入力途中の文字を消していいものでもないでしょう。