デュアルモニタ接続時にフルスクリーンにした際、マウスポインタの位置と判定がズレてしまう症状の修正方法について

お世話になっております。

​

Windows版のパッケージにて、デュアルモニタに接続している環境で、サブモニタ側にフルスクリーンモードで表示していると、

画面上に表示されるマウスポインタの位置とウィジェットの当たり判定の位置がずれるような症状が発生しております。

​

UDNで同様の症状を検索したところ、以下の案件がありました。

[Content removed]

​

上記案件にはUE5.8でCL#49786545にて対処している可能性があると記載があるのですが、CL#49786545は変更箇所が多いため、最低限の変更だけの取り込みを行いたい考えております。

​

手元では、SlateApplication.cppとSlateUser.cppの2つコードにあるDisplaySizeの計算方法の変更と、それに伴い必要なSlateApplicationBase.hの変更、

の3ファイルのみを取り込めば良いかと考えておりますが、こちらの変更取り込みの妥当性などについて、情報ありましたら教えていただけますでしょうか。

​

お手数おかけしますが、よろしくお願いいたします。

[Attachment Removed]

お世話になっております。

ご検討の3ファイルという方針で問題ございません。実際にその範囲で症状が解消するようでしたら、そのままご採用いただいて差し支えないかと思います。

補足として2点お伝えいたします。

1点目は、SlateUser.cppについてです。DisplaySizeの計算式の行のみを差し替えますと、かえって症状が悪化する可能性がございます。5.8では比が逆転し、Left/Topを据え置いてRight/Bottomのみ再計算する形に変わっておりますので、ifブロック単位での差し替えをお願いいたします。SlateApplication.cppも同様に、該当のifブロックごと取り込んでいただくのが安全です。

2点目は、SceneViewport.cppについてです。5.8ではL764からL776にも同様の補正が入っており、マウスキャプチャ解除時に復元されるカーソル位置を対象としております。ウィジェットの当たり判定そのものとは別経路ですので、まずは3ファイルでご確認いただき、キャプチャ解除後の位置ずれが残るようでしたら追加でご検討ください。

なお、依存する関数はいずれも既存のものですので、追加のバックポートは不要です。

上記でうまくいかない場合や、他に気になる挙動が出た場合は、改めてご連絡いただけますでしょうか。こちらでも引き続き確認いたします。

お手数ですが、よろしくお願いいたします。

[Attachment Removed]

お世話になっております。

​

ご確認いただきありがとうございます。

また、補足情報も記載いただきありがとうございます。

​

ifブロックも含めた変更とし、3ファイルの変更で様子を見つつ、必要に応じてSceneViewport.cppも追加し4ファイルの変更での修正対応を行おうと思います。

まだ軽くしか動かしていませんが、現状問題は出ておりません。​

​

引き続き様子を見つつ、もし問題が起きた場合は、再度連絡させていただきます。

ご対応いただきありがとうございました。

[Attachment Removed]