SSP 2.6.58
https://ssp.shillest.net/
#ukagaka
Conversation
Notices
-
ぽな (C.Ponapalt) (ponapalt@ukadon.shillest.net)'s status on Sunday, 14-Jan-2024 08:19:02 JST ぽな (C.Ponapalt) -
ななっち (kanade_lab@ukadon.shillest.net)'s status on Sunday, 14-Jan-2024 15:54:23 JST ななっち @ponapalt 対応ありがとうございます。かなり改善されたみたいです!
1点、SSPをくっつけるときの
SetParent() 時にアクティブを奪う挙動があるようなので、こちらも見ていただけるとありがたいです…!
(アクティブを奪われている状態だと、非アクティブなさとりすとをタスクバーからアクティブ化しづらい?現象も確認していますが根本的には最初フォーカスが取られなければ大丈夫なのではないかと思ってます、多分…。)In conversation permalink -
ぽな (C.Ponapalt) (ponapalt@ukadon.shillest.net)'s status on Sunday, 14-Jan-2024 17:39:28 JST ぽな (C.Ponapalt) @kanade_lab 厳密にどのタイミングで発生、とかわかりますか?
アクティブを奪いそうなAPI呼び出しの大半は始末したつもりなんだけど…どうしようね…In conversation permalink -
ななっち (kanade_lab@ukadon.shillest.net)'s status on Sunday, 14-Jan-2024 17:51:30 JST ななっち @ponapalt
一旦手元のコードをコミットしました。手元ではサーフェスビューワv3が出てる状態でゴーストを開くと再現しています。わかっているのは、
RuntimeBasedSurfaceViewer,xaml.cs の
BindGhostWindow()内での
Win32Import.SetParent()
ですね。これをやるとアクティブが奪われるし、やらないとアクティブが奪われない感じです。あとその直後行にさとりすと側のウインドウをアクティブにするように共有すると、アクティブを奪い合った後さとりすと側がアクティブになります。
Win32Import.SetActiveWindow(Parent.Main.MainWindow.HWnd);
In conversation permalink -
ななっち (kanade_lab@ukadon.shillest.net)'s status on Tuesday, 16-Jan-2024 21:59:23 JST ななっち @ponapalt こちらで対応していたらうまくいきました!
SSP側のウインドウスタイルから WS_POPUP を外す必要がありました。さとりすと側から WS_POPUP を外すとSSPにアクティブを奪われなくなった感じです。
ご協力ありがとうございます…!https://learn.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-setparent
In conversation permalink
-