Ticket #37379

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

오픈 날짜: 2017-07-17 23:16 마지막 업데이트: 2017-07-17 23:28

Reporter:
소유자:
Type:
Status:
Closed
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

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

#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
  • Resolution Update from None to Fixed
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2017-07-17 23:28

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login