バグ:カードビューのコメントのフロー吹き出しが出ない

Issue #377 resolved
ルンバ created an issue

先程の

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)

  1. k4nagatsuki repo owner

    ご報告ありがとうございます。

    手許の同バージョンでは出るのですが、詳細な状況を教えていただけないでしょうか。

  2. ルンバ reporter

    設定ファイルを初期化してゴブリンの洞窟を開き、コメントを付けてみましたが、ツリー以外の最近新設されたフローするコメントはカードビュー以外も含め全て出ないようです。

    コメントの記述自体は正常ですが、フロー表示のみ行われない状態です。

  3. k4nagatsuki repo owner

    こちらでは初期設定でも表示されます。OSなど詳細な情報を教えていただけないでしょうか。

  4. ルンバ reporter

    Win10pro バージョン1909 osビルド18363.900

    他に何か必要でしょうか?

  5. k4nagatsuki repo owner

    32-bit版等全てのバージョンで同じように出ないのでしょうか?

    また、吹き出しは効果やイベントコンテントのボタンにカーソルを合わせた時と同じ仕組みを使ってツールトップとして出していますが、効果・イベントコンテントの方は問題ないでしょうか?

    とりあえず、マウスイベントが取れていない事を考えてポインタの位置をコンソール出力するバージョンを作ってみます。

  6. k4nagatsuki repo owner

    ウィルス対策ソフトが処理を妨害しているケースもしばしばあるので、もしWindows Defender以外を使用している場合は一時的に無効にして試していただけないでしょうか(その間はネットワークから切り離しておく事をおすすめします)。

  7. k4nagatsuki repo owner

    https://drive.google.com/drive/folders/1xhNYdHZgTQCGFGITCQho-sF36lndY0E_

    マウス位置をコンソールに表示するバージョンです。

    • カードビュー等の上でマウスカーソルを動かすとカーソル位置が出ます。
    • カーソル下に何らかのアイテムがある場合、「hit item」と表示されます。
    • そのアイテムにコメントがあった場合、「hit comment: …」と表示されます。

    もしコンソール上にコメントのヒットが表示されるようであれば、その後の処理に問題がある事になるかと思います。

  8. ルンバ reporter

    32-bit版も同様でした。Windows Defenderしか使用していません。

    また、ツールバーのイベントコンテントのフロー説明文は正常に出てきます。

    コンソール表示バージョンを試したところ「hit comment: …」と表示されます。

  9. k4nagatsuki 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日のバージョンを今の環境でリビルドしたバージョンも作ってみます。

  10. k4nagatsuki repo owner

    このまま原因が分からなければ、6月22日のバージョンを今の環境でリビルドしたバージョンも作ってみます。

    先に作っておいた方が話が早そうなので、同じ場所にリビルド版を置いておきました(cwxeditor_test_20200627c.zip)。6月22日のバージョンと同じソースコードをビルドしています。

    これで同じ問題が出て、本当の6月22日版で出ないようであれば、たぶん処理系かライブラリの方に問題が起きたのだと思います。

  11. ルンバ reporter

    cwxeditor_test_20200627c で正常に動作しました。

    ありがとうございます。

  12. ルンバ reporter

    bのバージョンでは「show tooltip」が出て「hide tooltip」が出ていない状態です。

    私の環境はモニタが複数ありますが他のモニタにも吹き出しは見当たらないです。

  13. k4nagatsuki repo owner

    GUIツールキットの更新でもないとなると6月22日~25日の間の差分の中に原因となる箇所がある事になります。コメント関係のコードは触っていないので、ありそうなのはcwxeditor.exeにバージョン情報などの入ったリソースを含めるようにした事でWindowsの何かしらのバグを踏んでしまった、という事です。

    ソースコードを最新にし、リソースだけを戻したバージョンを作ったので、お試しください。

    https://drive.google.com/drive/folders/1xhNYdHZgTQCGFGITCQho-sF36lndY0E_

    もしこれで現象が発生しなくなるようなら、どの情報が問題を起こしているのか調べていく事になると思います。

  14. k4nagatsuki 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`)辺りでしょうか。

    とりあえず誘因を絞り込むためにいくつかビルドを作ってみます。

  15. k4nagatsuki 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
    

  16. ルンバ reporter

    2つのビルドを試してみましたが、両方ともコメントはフローしません。

  17. k4nagatsuki 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"
    

  18. ルンバ reporter

    dバージョンもコメントはフローしません。

    外観について変化はとくになさそうですが、タスクマネージャー上のアプリ名が今までは『cwxeditor_fnine_win_x64』だったのが

    フローがでなくなった以下のバージョンでは

    Build: 2020-06-26 22:15:18 Debug (64-bit)
    Compiled by Digital Mars D 2092

    Build: 2020-06-26 22:11:38 Debug / Console (32-bit)
    Compiled by Digital Mars D 2092

    Build: 2020-06-27 00:06:13 Debug / Console (64-bit)
    Compiled by Digital Mars D 2092

    Build: 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.』に変わっていますがこれはそちらの意図的な変更かと思っていましたがそれで良いでしょうか?

  19. ルンバ 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

  20. k4nagatsuki 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"
    

  21. k4nagatsuki repo owner

    これまでの実験結果を踏まえてcwxeditor_test_20200628g.zipcwxeditor_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にしています。

  22. Log in to comment