Metasequoia BBS

| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[7029] 特定操作でUndoバッファが壊れる / tamachan
[不具合報告] 返信
内容:
・特定操作でUndoバッファが壊れる
・Commandプラグインで、MQ_RefreshView -> UpdateUndo の順番だと正常に動作。UpdateUndo -> MQ_RefreshView の順番だとUndoが壊れる

バージョン:
Metasequoia459
MQSDK459

症状:
・添付.mqoに再現コードを実行するとUndoに状態が保存されない。Undoできない
・以後標準ツールを使用するとOutputDebugStringでエラーが表示される(何もないところをクリックするとかすると表示される)
//   MDocument::updateCurrentUndoSelectionObject() : Different number of vertices.
//   MDocument::updateCurrentUndoSelectionObject() : Different number of faces.

再現コード:
https://pastebin.com/T38CBRqX

添付.mqo:
https://pastebin.com/TAdAeLRe
2017-05-18 21:38
[7035] Re: 特定操作でUndoバッファが壊れる / 管理者
Commandプラグインからマウス操作等に応じて表示を更新する場合、通常はRedrawAllSceneまたはRedrawSceneを用います。
RedrawAllScene/RedrawSceneとMQ_RefreshViewの違いは更新を予約するだけか、即座に更新するかですが、MQ_RefreshViewは表示以外にも内部で管理される他の更新フラグに影響を与えてしまうようで、特に事情がなければCommandプラグインからは使わないほうがいいです。
2017-05-23 14:16
[7036] Re: 特定操作でUndoバッファが壊れる / tamachan
わかりました。RedrawAllSceneを使うようにします。

ただ忘れてしまってまた悩みそうです。できればなんらかの対策してもらえると大変有り難いです(CommandプラグインからMQ_RefreshViewを無効化 / RedrawAllSceneと自動的に置き換え / OutputDebugStringで注意文を出力する等)
2017-05-23 22:24