待辦事項 #37379

macOS版 設定ダイアログ表示中にキー操作をメインウィンドウに反映させない

啟用日期: 2017-07-17 23:16 最後更新: 2017-07-17 23:28

回報者:
負責人:
類型:
狀態:
關閉
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
修正
檔案:

細節

設定ダイアログ表示中にカーソルキーを操作すると、メインウィンドウのカメラが移動してしまう。 設定ダイアログ表示中は、メインウィンドウにキー操作が反映されないようにするべき。

#37374 macOS版 背景画像表示機能追加」にて、背景画像のファイルパスを入力する エディットボックスを用意したことにより、パス文字列編集時に本現象が発生することが分かった。 サンドボックス対応でパス文字列の編集は許可しないことにしたため、直接弊害が起きることは なくなったが、念のため修正しておく。

Ticket History (3/5 Histories)

2017-07-17 23:16 Updated by: yknk
  • New Ticket "macOS版 設定ダイアログ表示中にキー操作をメインウィンドウに反映させない" created
2017-07-17 23:27 Updated by: yknk
評語

原因

一人称カメラクラスMTFirstPersonCamは、DIKeyCtrlクラスを用いてキー押下状態を検出している。 DIKeyCtrlクラスは、設定ダイアログの表示状態を意識しておらず、設定ダイアログ上の エディットボックスでキー操作をした場合であっても、キー操作を検出するため。

2017-07-17 23:27 Updated by: yknk
評語

対策方針

DIKeyCtrlクラスにロック制御するメソッドを追加する。ロック中はキー入力状態を無視する。 設定ダイアログ表示開始前にロックを開始し、設定ダイアログ表示終了時にロックを解除する。

2017-07-17 23:28 Updated by: yknk
評語

対策

DIKeyCtrl

メンバ変数にロック状態m_isLockedを追加。

DIKeyCtrl::DIKeyCtrl

デストラクタにm_isLockedの初期化処理を追加。

DIKeyCtrl::IsKeyDown

ロック中はキー押下状態を無視する処理を追加。

DIKeyCtrl::SetLockState

ロック状態設定メソッドを新規追加。

MIDITrailApp::OnMenuFileOpen

設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。

MIDITrailApp::OnMenuWindowSize

設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。

MIDITrailApp::OnMenuOptionMIDIOUT

設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。

MIDITrailApp::OnMenuOptionMIDIIN

設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。

MIDITrailApp::OnMenuOptionGraphic

設定ダイアログの表示前にDIKeyCtrlをロック、表示終了後にロック解除する処理を追加。

2017-07-17 23:28 Updated by: yknk
  • 處理結果 Update from to 修正
  • 狀態 Update from 開啟 to 關閉
  • Ticket Close date is changed to 2017-07-17 23:28

Attachment File List

No attachments

編輯

Please login to add comment to this ticket » 登入