[ 新規に投稿する ]

「レンダリングペイン」と「秀丸ウィンドウ切り替え」のバグNo.10561
こみやんま さん 25/02/13 19:47 [ コメントを投稿する ]
  「レンダリングペイン」の描画が「秀丸ウィンドウ切り替え」で途中で切り上げられて
そのままバグったままになるというバグ。


投稿だとすごい長くなりそうなので、

https://github.com/komiyamma/hm_renderpane_activewindow_bug

にあげました。

- 再現するためのファイル2つ。
- バグ状態ムービー1つ

もアップしました。
[ ]
RE:10561 「レンダリングペイン」と「秀丸ウィンドウ切り替え」No.10562
秀丸担当 さん 25/02/14 10:06 [ コメントを投稿する ]
  バグ情報ありがとうございます。
マクロと手順の通りにして再現させることができました。
非タブモードでやってみたら再現しないです。
タブモードと厳密には同じではないものの、それぞれのマクロの実行やWebView2のインスタンスの存在具合は同じはずだと思います。
おそらく、WebView2単体による時間差の更新的な何かがあって、それがたまたまウィンドウが非表示状態にあるときに問題という気がします。
何かいい方法があったらいいですが、どうしたらいいのかわかりません。
今思いつくのは、そういう状況になったらマクロ再実行などで更新させるなどをするしかなさそうです。
[ ]
RE:10562 「レンダリングペイン」と「秀丸ウィンドウ切り替えNo.10563
こみやんま さん 25/02/14 11:53 [ コメントを投稿する ]
  うーん、タブモードと「ファイルを開いた時」の自動起動マクロですが、

「タブを開いてから」「ファイルを開いた際のマクロ」が実行されるよりも前に、
さらに他のファイルを開くだけは開く。

そして後から、マクロ実行の時アクティブを戻す、みたいな
「一種の自動起動マクロへの割り込みファイルオープン」みたいな処理がはいってるんでしょうか?

例えば、2秒待ては絶対大丈夫でしょ、いくらなんでも、と思い、

// ------------ test.mac ------------

jsmode "WebView2\\" + currentmacrofilename;

js {
debuginfo(2);
var label = "testBugPane" + hidemaru.getCurrentWindowHandle();
setVar("$label", label);
console.log(label)

renderpanecommand({
    target: "testBugPane" + label,
    show: 1,
    uri: currentmacrodirectory() + "\\test.html",
    place: "overlay",
    align: "right",
    initialize: "async",
    x: 100,
    y: 100,
    cx: 100,
    cy: 100
});

hidemaru.setTimeout(() => {
    hidemaru.notifyAwait("test1");
}, 2000);

} // js


awaitjs("test1");

js {
debuginfo(2);
    console.log(filename2() + ":▲MacroComplete");
}

こんな2秒待ちをしても、なおも描画が安定しないっぽいですw

割り込みが入っているやつの1つ前に開いていたタブがおかしくなるきがするんですよねぇ...
[ ]
RE:10563 「レンダリングペイン」と「秀丸ウィンドウ切り替えNo.10564
こみやんま さん 25/02/14 11:58 [ コメントを投稿する ]
  あ、もしかすると、
「renderpanecommandを実行した後にウィンドウがどこかに行った」ことでひっかかっているというよりも、
「renderpanecommand実行が、ウィンドウ表示よりも先に行われてしまっている」ことも原因になってるんですかね?


ファイルオープン→秀丸の該当タブのウィンドウを表示→renderpanecommand実行→該当のウィンドウ非表示

だけではなく、

ファイルオープン→まだ秀丸の該当タブのウィンドウを表示できてない→renderpanecommand実行→該当のウィンドウ表示

こちらも問題になる?
[ ]
RE:10564 「レンダリングペイン」と「秀丸ウィンドウ切り替えNo.10565
秀丸担当 さん 25/02/14 15:56 [ コメントを投稿する ]
  マクロの実行タイミングとしては、その逆で、次の秀丸エディタを起動してから、その1つ前の秀丸エディタ上で実行されるようになっていました。
非タブモードでも同じですが、タブモードの場合はその時点では非表示であることが違います。
常に起動され表示されたときの実行となるようにしてみようと思います。
[ ]

[ 新規に投稿する ]