robvdpol / RaceControl

Race Control is a standalone, open source F1TV client for Windows, written in C# on the .NET platform.
GNU General Public License v3.0
1.19k stars 95 forks source link

[BUG] Internal player behavior with screen scaling #115

Open snowice0 opened 3 years ago

snowice0 commented 3 years ago

When running the internal player and resizing to different parts of the screen I get a consistent and repeatable but not intended behavior of the screen moving to my inactive monitor and incorrectly displaying the player in the corner. A screenshot is provided in which two players were opened of different views. One was to be on the top left corner while the second was to be on the bottom right but they both shot over to my inactive monitor and didn't display correctly.

2019 MPB Windows 10 (latest) RaceControl (Latest) Native monitor + external monitor connected via HMDI to USB C

Screenshot 2021-05-04 205224

robvdpol commented 3 years ago

Are you perhaps using different scaling settings (percentage) for different monitors?

Anyway, I fixed a bug recently that was related to this, so it might already be fixed in the next release (will be released today or tomorrow). Please report back if the issue persists.

snowice0 commented 3 years ago

Thank you, I double checked and yes its scaling issue. With Version 2.1.0 the issue persists - so waiting for that update. As a side note in-case the information is useful to you - when the f1 Race control window is on my native laptop monitor the controls work as intended - without the scaling issue but breaks when the focus of the application is on my external monitor. Regardless in anycase - it would be nice if the application would shift the video to whatever corner of the monitor that the video is open in. That way a user can watch on different monitors. I'm only mentioning that in case the fix was specifically to the scaling or if in the next update its still going to move it to the wrong monitor.

Thanks for the quick feedback and your work! Appreciate it

robvdpol commented 3 years ago

Please try again with the 2.2.0 release and report back.

snowice0 commented 3 years ago

Just sitting here refreshing the microsoft store until the update pushes and ill come back and let you know

robvdpol commented 3 years ago

The Microsoft Store release may take up to 24 hours to get certified unfortunately.


From: snowice0 @.> Sent: Wednesday, May 5, 2021 10:24:28 PM To: robvdpol/RaceControl @.> Cc: Rob @.>; State change @.> Subject: Re: [robvdpol/RaceControl] [BUG] (#115)

Just sitting here refreshing the microsoft store until the update pushes and ill come back and let you know

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHubhttps://github.com/robvdpol/RaceControl/issues/115#issuecomment-832982644, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANSSOPGXNBOWUDW6HIYOZNLTMGSPZANCNFSM44D4NYQQ.

snowice0 commented 3 years ago

oh dear god. Thankfully its not raceday. I think I can wait for MS to certify it first. Thanks for the quick responses and development! if you dont mind answering a side question here: if you stream rather than download - where are the temp files stored exactly?

snowice0 commented 3 years ago

Update pushed here is the current (partially solved but not totally correct behaviour): two monitors (175%, 100% scaling) Now when the main application is open on either monitor it will correctly open a video player and you can correctly move it to some corner. Previously it would push to the 175% monitor scale broken. However, if you open a video player and move it to the opposite monitor from where the main application is then the scaling will still break. This is solvable by shifting the main application to either desktop and then moving to video player and then doing that on the other desktop. (ex: if you wanted to have 8 windows, 4 in each corner of each monitor you would need to have the application focused on one monitor, open 4 and move them - then move the application to the other monitor and do the same. You couldn't open 8 from one monitor and move 4 over.) So the behaviour has changed as previously it would always be broken. Essentially the scaling is coming from the scale of wherever the application is not the video player. The update makes it much more usable in that i can actually use both monitors.

robvdpol commented 3 years ago

Yeah, the problem is that you have different scaling on different monitors. It's actually a known issue, I'll have to dig deeper into that. But at least the application is usable for you now ;)

xlsupport commented 3 years ago

this still ain't fixed. Depending on ResizeMode the video scales differently from the container.

I'm willing to help: Been digging in code, but got to get used to both GitHub and Prism... e.g. Getting the visual from a viewmodel possibly is easy, but not for me. Experimenting with PerMonitorV2..
FlyLeafLib: FlyLeafWindow.cs needs tweaking in the move/size events. RaceControl: WindowLocationExtensions.cs can be much easier and ScreenHelper.cs needs to use Visuals to get the proper scale. Also I'd probably add some Extensions to scale points/rectangles.

Let me know if we can DM.