macOS版 設定ダイアログ表示中にキー操作をメインウィンドウに反映させない
一人称カメラクラスMTFirstPersonCamは、DIKeyCtrlクラスを用いてキー押下状態を検出している。 DIKeyCtrlクラスは、設定ダイアログの表示状態を意識しておらず、設定ダイアログ上の エディットボックスでキー操作をした場合であっても、キー操作を検出するため。
DIKeyCtrlクラスにロック制御するメソッドを追加する。ロック中はキー入力状態を無視する。 設定ダイアログ表示開始前にロックを開始し、設定ダイアログ表示終了時にロックを解除する。
メンバ変数にロック状態m_isLockedを追加。
デストラクタにm_isLockedの初期化処理を追加。
ロック中はキー押下状態を無視する処理を追加。
ロック状態設定メソッドを新規追加。
設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。
設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。
設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。
設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。
設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。
設定ダイアログ表示中にカーソルキーを操作すると、メインウィンドウのカメラが移動してしまう。 設定ダイアログ表示中は、メインウィンドウにキー操作が反映されないようにするべき。
「#37374 macOS版 背景画像表示機能追加」にて、背景画像のファイルパスを入力する エディットボックスを用意したことにより、パス文字列編集時に本現象が発生することが分かった。 サンドボックス対応でパス文字列の編集は許可しないことにしたため、直接弊害が起きることは なくなったが、念のため修正しておく。