任务单 #37379

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

开放日期: 2017-07-17 23:16 最后更新: 2017-07-17 23:28

报告人:
属主:
类型:
状态:
关闭
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:

Details

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

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

任务单历史 (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 Fixed
  • 状态 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 » 登录名