sakura
sakura copied to clipboard
マクロの Paste() が失敗する場合がある
問題内容
マクロの Paste() が失敗することがあるようです.
再現手順
SetDrawSwitch( 0 );
Cut();
Paste();
SetDrawSwitch( 1 );
ReDraw();
上記のマクロをキーに割り当て,EOF以外 の行で実行すると,Paste() の実行に失敗し警告音が鳴ります.
https://github.com/sakura-editor/sakura/blob/fe4cc6d17e0e9f0e58f13c6c3cca9147b7751e32/sakura_core/_os/CClipboard.cpp#L42-L46
で ::OpenClipboard() に失敗し,
https://github.com/sakura-editor/sakura/blob/fe4cc6d17e0e9f0e58f13c6c3cca9147b7751e32/sakura_core/view/CEditView.cpp#L2295-L2297
の if が成立してしまうようです.
再現頻度
- https://github.com/sakura-editor/sakura/actions/runs/9992367305/artifacts/1715223953 で 100% 再現する
- fe4cc6d17e0e9f0e58f13c6c3cca9147b7751e32 を手元でリリースビルド (x64) したもので 100% 再現する
- デバッグビルド (x64) では再現しない
- マクロ 1行目の SetDrawSwitch をコメントアウトすると再現しない
- CEditView.cpp 2295行目にブレークを張って一時停止→再開すると,リリースビルドでも再現しない
以上から,タイミングに依存している気がします.環境によってはなかなか再現しないかもしれません.
問題のカテゴリ
- プログラムの動作上の問題
環境情報
-
OS バージョン Windows 11 Pro 23H2
-
サクラエディタバージョン
サクラエディタ開発版(64bit) Ver. 2.4.2.6117 GHA (fe4cc6d17)
(GitHash fe4cc6d17e0e9f0e58f13c6c3cca9147b7751e32)
(GitURL https://github.com/sakura-editor/sakura)
Compile Info: V_A641940 WPR WIN601/I800/C000/N601
Last Modified: 2024/7/18 22:27:17
- PC情報