バグ:カードビューのコメントのフロー吹き出しが出ない
先程の
Build: 2020-06-26 22:15:18 Debug (64-bit)
Compiled by Digital Mars D 2092
での症状です。
Build: 2020-06-22 19:37:07 Debug (64-bit)
Compiled by Digital Mars D 2092 では正常です
Comments (26)
-
repo owner -
reporter 設定ファイルを初期化してゴブリンの洞窟を開き、コメントを付けてみましたが、ツリー以外の最近新設されたフローするコメントはカードビュー以外も含め全て出ないようです。
コメントの記述自体は正常ですが、フロー表示のみ行われない状態です。
-
repo owner こちらでは初期設定でも表示されます。OSなど詳細な情報を教えていただけないでしょうか。
-
reporter Win10pro バージョン1909 osビルド18363.900
他に何か必要でしょうか?
-
repo owner 32-bit版等全てのバージョンで同じように出ないのでしょうか?
また、吹き出しは効果やイベントコンテントのボタンにカーソルを合わせた時と同じ仕組みを使ってツールトップとして出していますが、効果・イベントコンテントの方は問題ないでしょうか?
とりあえず、マウスイベントが取れていない事を考えてポインタの位置をコンソール出力するバージョンを作ってみます。
-
repo owner ウィルス対策ソフトが処理を妨害しているケースもしばしばあるので、もしWindows Defender以外を使用している場合は一時的に無効にして試していただけないでしょうか(その間はネットワークから切り離しておく事をおすすめします)。
-
repo owner https://drive.google.com/drive/folders/1xhNYdHZgTQCGFGITCQho-sF36lndY0E_
マウス位置をコンソールに表示するバージョンです。
- カードビュー等の上でマウスカーソルを動かすとカーソル位置が出ます。
- カーソル下に何らかのアイテムがある場合、「hit item」と表示されます。
- そのアイテムにコメントがあった場合、「hit comment: …」と表示されます。
もしコンソール上にコメントのヒットが表示されるようであれば、その後の処理に問題がある事になるかと思います。
-
reporter 32-bit版も同様でした。Windows Defenderしか使用していません。
また、ツールバーのイベントコンテントのフロー説明文は正常に出てきます。
コンソール表示バージョンを試したところ「hit comment: …」と表示されます。
-
repo owner https://drive.google.com/drive/folders/1xhNYdHZgTQCGFGITCQho-sF36lndY0E_
別のテスト版を上げました。コンソールに出る内容を変えています。
- ツールチップが生成・破棄された時に「create tooltip」「dispose tooltip」
- ツールチップが表示される時に「show tooltip: (位置)」
- ツールチップが非表示になる時に「hide tooltip」
「show tooltip」が出て「hide tooltip」が出ていない状態であれば、本来は画面上に吹き出しが見えているはずです。位置がモニタ内に収まっているか確認してください。
もしそうした状態でも吹き出しが見えていないようのであれば、何らかの原因で吹き出しのウィンドウが見えなくなっているのだと思います。が、なぜそうなるのかは見当も付きません。
この辺りの処理は5月26日以降変更していません。更新したコンパイラかGUIツールキットに問題があるのかもしれません。このまま原因が分からなければ、6月22日のバージョンを今の環境でリビルドしたバージョンも作ってみます。
-
repo owner このまま原因が分からなければ、6月22日のバージョンを今の環境でリビルドしたバージョンも作ってみます。
先に作っておいた方が話が早そうなので、同じ場所にリビルド版を置いておきました(cwxeditor_test_20200627c.zip)。6月22日のバージョンと同じソースコードをビルドしています。
これで同じ問題が出て、本当の6月22日版で出ないようであれば、たぶん処理系かライブラリの方に問題が起きたのだと思います。
-
reporter cwxeditor_test_20200627c で正常に動作しました。
ありがとうございます。
-
reporter bのバージョンでは「show tooltip」が出て「hide tooltip」が出ていない状態です。
私の環境はモニタが複数ありますが他のモニタにも吹き出しは見当たらないです。
-
repo owner GUIツールキットの更新でもないとなると6月22日~25日の間の差分の中に原因となる箇所がある事になります。コメント関係のコードは触っていないので、ありそうなのは
cwxeditor.exe
にバージョン情報などの入ったリソースを含めるようにした事でWindowsの何かしらのバグを踏んでしまった、という事です。ソースコードを最新にし、リソースだけを戻したバージョンを作ったので、お試しください。
https://drive.google.com/drive/folders/1xhNYdHZgTQCGFGITCQho-sF36lndY0E_
もしこれで現象が発生しなくなるようなら、どの情報が問題を起こしているのか調べていく事になると思います。
-
reporter 確認したところ最新版でも正常に動作しました。
-
repo owner ありがとうございます。やはりリソースが絡んだWindowsのバグと考えてよさそうです。
後々のためリソース情報を載せていきます。
まず正常に動作する(以前のバージョンの)リソースです。
1 24 "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico"
現行のリソースは以下です。
1 RT_MANIFEST "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico" 1 VERSIONINFO FILEVERSION 8,0, 0, 0 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "041104b0" BEGIN VALUE "CompanyName", "CWXEditor Developers.\0" VALUE "FileDescription", "Scenario Editor for WSN and CardWirth 1.28-1.50.\0" VALUE "InternalName", "CWXEditor\0" VALUE "LegalCopyright", "See Also: editor_history.txt\0" VALUE "OriginalFilename", "cwxeditor.exe\0" VALUE "ProductName", "CWXEditor\0" VALUE "ProductVersion", "8.0\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x411, 1200 END END
この中のどれかがバグを誘発しているはずです。怪しいのは言語情報(日本語=
041104b0
`)辺りでしょうか。とりあえず誘因を絞り込むためにいくつかビルドを作ってみます。
-
repo owner 怪しいところを変えた異なるリソース情報を使って2つのビルドを作りました。お試しください。私の方ではその間にWindowsリソースの資料を漁ってみます。
https://drive.google.com/drive/folders/1xhNYdHZgTQCGFGITCQho-sF36lndY0E_
cwxeditor_test_20200628b.zip
のリソース情報は以下です。RT_MANIFEST
の値は24のはずなので、理屈の上では6月22日版と変わりなく動くはずです。1 RT_MANIFEST "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico"
cwxeditor_test_20200628c.zip
のリソース情報は以下です。現行版との違いは言語設定が英語(米国)041104b0
になっている事です。1 RT_MANIFEST "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico" 1 VERSIONINFO FILEVERSION 8, 0, 0, 0 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "CWXEditor Developers.\0" VALUE "FileDescription", "Scenario Editor for WSN and CardWirth 1.28-1.50.\0" VALUE "InternalName", "CWXEditor\0" VALUE "LegalCopyright", "See Also: editor_history.txt\0" VALUE "OriginalFilename", "cwxeditor.exe\0" VALUE "ProductName", "CWXEditor\0" VALUE "ProductVersion", "8.0\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END
-
reporter 2つのビルドを試してみましたが、両方ともコメントはフローしません。
-
repo owner もしかして
RT_MANIFEST
が24以外の値になっておりマニフェストファイルが読み込めていないということでしょうか? しかしそうだとするとcomctl32.dllのバージョン5が読み込まれてしまい、cwxeditor自体の外観が変わってしまうはずです。とりあえず以下のリソースでビルドを作りました(
cwxeditor_test_20200628d.zip
`)。これを試していただけないでしょうか。#define RT_MANIFEST 24 VS_VERSION_INFO RT_MANIFEST "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico"
-
reporter dバージョンもコメントはフローしません。
外観について変化はとくになさそうですが、タスクマネージャー上のアプリ名が今までは『cwxeditor_fnine_win_x64』だったのが
フローがでなくなった以下のバージョンでは
Build: 2020-06-26 22:15:18 Debug (64-bit)
Compiled by Digital Mars D 2092Build: 2020-06-26 22:11:38 Debug / Console (32-bit)
Compiled by Digital Mars D 2092Build: 2020-06-27 00:06:13 Debug / Console (64-bit)
Compiled by Digital Mars D 2092Build: 2020-06-27 00:06:13 Debug / Console (64-bit)
Compiled by Digital Mars D 2092『Scenario Editor for WSN and CardWirth 1.28-1.50.』に変わっていますがこれはそちらの意図的な変更かと思っていましたがそれで良いでしょうか?
-
reporter Build: 2020-06-27 01:43:14 Debug / Console (64-bit)
Compiled by Digital Mars D 2092までは『Scenario Editor for WSN and CardWirth 1.28-1.50.』で表示で
以下より後のバージョンは『cwxeditor.exe』とでます。
Build: 2020-06-27 01:55:49 Debug / Console (64-bit)
Compiled by Digital Mars D 2092 -
repo owner タスクマネージャでの表示が変わるのは、アプリケーションの情報を文字列で含めるようにしたためで、この文字列は今回バグを誘発したらしいリソースに含まれています。
これらの文字列でアプリケーションの挙動が変わるのはまずありえないので(まして環境によって挙動が変化する事はバグ以外では絶対にありえない)、Windowsかリソースコンパイラのバグと思しいです。
さらに2つのビルドを作りました。これらをお試しください。
cwxeditor_test_20200628e.zip
#define VS_VERSION_INFO 1 #define RT_MANIFEST 24 VS_VERSION_INFO RT_MANIFEST "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico"
cwxeditor_test_20200628f.zip
1 24 "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico"
-
reporter e、f 共に 正常にフロー表示されました。
-
repo owner これまでの実験結果を踏まえて
cwxeditor_test_20200628g.zip
とcwxeditor_test_20200628h.zip
を作りました。リソース内容はどちらも同じですが、リソースコンパイラが32-bit版と64-bit版で異なるので2つビルドしています。お試しください。おそらく今回の問題は、リソースコンパイラがマニフェスト関係の情報を正しくコンパイルできておらず、そのため
cwxeditor.exe.manifest
が正常に取り込めず、起動時に読み込まれるcomctl32.dll
が異なってしまったせいで環境によって問題が起きたり起きなかったりする、という事だと思います。#define VS_VERSION_INFO 1 #define RT_MANIFEST 24 VS_VERSION_INFO RT_MANIFEST "cwxeditor.exe.manifest" ID_APP ICON "cwxeditor.ico" #define VS_FFI_FILEFLAGSMASK 0x0000003FL #define VOS_NT_WINDOWS32 0x00040004L #define VOS_NT_WINDOWS64 0x00040005L #define VFT_APP 0x00000001L #define VFT2_UNKNOWN 0x00000000L VS_VERSION_INFO VERSIONINFO FILEVERSION 8, 0, 0, 0 PRODUCTVERSION 8, 0, 0, 0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 #ifdef WIN64 FILEOS VOS_NT_WINDOWS64 #else FILEOS VOS_NT_WINDOWS32 #endif FILETYPE VFT_APP FILESUBTYPE VFT2_UNKNOWN BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "041104b0" BEGIN VALUE "CompanyName", "CWXEditor Developers.\0" VALUE "FileDescription", "CWXEditor\0" VALUE "InternalName", "CWXEditor\0" VALUE "LegalCopyright", "See Also: editor_history.txt\0" VALUE "OriginalFilename", "cwxeditor.exe\0" VALUE "ProductName", "CWXEditor\0" VALUE "ProductVersion", "8.0\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x411, 1200 END END
タスクマネージャで出てくるDescriptionがScenario Editorでは分かりにくいので、それはCWXEditorにしています。
-
reporter ghも正常にフロー表示します。
-
repo owner ありがとうございます。これで修正(というかWindowsの不具合の回避)は完了でいいかと思います。
最新のテスト版をお試しください。
https://drive.google.com/drive/folders/1lypLl5OG6LXvQcgZg9FYLJOYjXFaDvtA
-
reporter - changed status to resolved
64.34 両版正常動作しました。ご対応ありがとうございます。
- Log in to comment
ご報告ありがとうございます。
手許の同バージョンでは出るのですが、詳細な状況を教えていただけないでしょうか。