diff --git a/Changelog.md b/Changelog.md index e85e12e..f29ec0a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,12 +1,18 @@ ### - fix for middle mouse button not working -- fix of logo overlay using a huge amount of memory +- fix of logo overlay using a huge amount of memory (thx for the [ghacks article](https://www.ghacks.net/2019/07/05/a-look-at-mpv-net-a-mpv-frontend-with-everything-integration/)) - fix config dialog showing a message about app restart without reason - when multiple files are selected in Windows File Explorer and enter is pressed, the files are opened as selected, the order is random though because Explorer starts multiple mpv.net processes concurrently - libmpv was updated to shinchiro 2019-06-30 +- the [mpv.conf defaults](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt) were changed to show a larger OSC +- in case a file is opened that has a aspect ratio smaller then 1.2 then + the window size will use a aspect ratio of 1.8 +- new JavaScript script osc-visibility.js included in the distribution + under startup\scripts. It sets the OSC to be always on for audio files + and auto for non audio files ### 4.5 diff --git a/mpv.net/Resources/mpvConf.txt b/mpv.net/Resources/mpvConf.txt index fa5be08..f5d13de 100644 --- a/mpv.net/Resources/mpvConf.txt +++ b/mpv.net/Resources/mpvConf.txt @@ -11,4 +11,5 @@ keep-open = yes keep-open-pause = no osd-playing-msg = '${filename}' screenshot-directory = '~~desktop/' -input-default-bindings = no \ No newline at end of file +input-default-bindings = no +script-opts=osc-scalewindowed=1.5 \ No newline at end of file diff --git a/mpv.net/WinForms/MainForm.cs b/mpv.net/WinForms/MainForm.cs index 4fa83b1..7563ab3 100644 --- a/mpv.net/WinForms/MainForm.cs +++ b/mpv.net/WinForms/MainForm.cs @@ -224,12 +224,28 @@ namespace mpvnet void SetFormPosAndSize() { - if (IsFullscreen || mp.VideoSize.Width == 0) return; + if (IsFullscreen) + return; + + Size size = mp.VideoSize; Screen screen = Screen.FromControl(this); - int height = mp.VideoSize.Height; - if (mp.RememberHeight) height = ClientSize.Height; - if (height > screen.Bounds.Height * 0.9) height = Convert.ToInt32(screen.Bounds.Height * mp.Autofit); - int width = Convert.ToInt32(height * mp.VideoSize.Width / (double)mp.VideoSize.Height); + int fixedHeight = Convert.ToInt32(screen.Bounds.Height * mp.Autofit); + + if (size.Height == 0 || size.Width == 0 || size.Width / (float)size.Height < 1.2) + { + size.Height = fixedHeight; + size.Width = (int)(fixedHeight * 1.8); + } + + int height = size.Height; + + if (mp.RememberHeight) + height = ClientSize.Height; + + if (height > screen.Bounds.Height * 0.9) + height = fixedHeight; + + int width = Convert.ToInt32(height * size.Width / (double)size.Height); Point middlePos = new Point(Left + Width / 2, Top + Height / 2); var rect = new Native.RECT(new Rectangle(screen.Bounds.X, screen.Bounds.Y, width, height)); NativeHelp.AddWindowBorders(Handle, ref rect);