Skip to content

Commit

Permalink
fix geometry
Browse files Browse the repository at this point in the history
  • Loading branch information
stax76 committed Jan 6, 2024
1 parent ad94042 commit 85e4e3f
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 13 deletions.
1 change: 1 addition & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

# v7.0.0.7 Beta (2023-??-??)

- Fix geometry not working when used from mpv.conf and the conf editor.
- GitHub Auto/Action/Workflow builds use a newer libmpv build.
- German and Chinese translation updated. Thanks to our translation team!
- New PowerShell script Tools/update-mpv-and-libmpv.ps1 to update mpv and libmpv.
Expand Down
2 changes: 2 additions & 0 deletions docs/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -675,6 +675,8 @@ https://mpv.io/manual/master/#window

Initial window location in percent. Default: 50:50 (centered)

Requires Windows 11, on Windows 10 it works slightly incorrect due to invisible borders.

x=0 docks the window to the left side.
x=100 docks the window to the right side.

Expand Down
4 changes: 2 additions & 2 deletions src/MpvNet.Windows/Resources/editor_conf.txt
Original file line number Diff line number Diff line change
Expand Up @@ -971,9 +971,9 @@ directory = Window
help = <int> Initial window height in percent for audio files. Default: 70

name = geometry
file = mpvnet
file = mpv
directory = Window
help = <x:y> Initial window location in percent. Default: 50:50 (centered)\n\nx=0 docks the window to the left side.\nx=100 docks the window to the right side.\ny=0 docks the window to the top side.\ny=100 docks the window to the bottom side.
help = <x:y> Initial window location in percent. Default: 50:50 (centered)\n\nRequires Windows 11, on Windows 10 it works slightly incorrect due to invisible borders.\n\nx=0 docks the window to the left side.\nx=100 docks the window to the right side.\n\ny=0 docks the window to the top side.\ny=100 docks the window to the bottom side.

name = start-size
file = mpvnet
Expand Down
26 changes: 15 additions & 11 deletions src/MpvNet.Windows/WinForms/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -688,18 +688,20 @@ void SetSize(int width, int height, Screen screen, bool checkAutofit = true, boo
int minTop = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Y).Min();
int maxBottom = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Bottom).Max();

if (load && CommandLine.Contains("geometry"))
if (load)
{
string geometryString = CommandLine.GetValue("geometry");
string geometryString = Player.GetPropertyString("geometry");

var geometry = ParseGeometry(geometryString, GetWorkingArea(
Handle, Screen.FromHandle(Handle).WorkingArea), width, height);
if (!string.IsNullOrEmpty(geometryString))
{
var pos = ParseGeometry(geometryString, width, height);

if (geometry.x != int.MaxValue)
left = geometry.x;
if (pos.X != int.MaxValue)
left = pos.X;

if (geometry.y != int.MaxValue)
top = geometry.y;
if (pos.Y != int.MaxValue)
top = pos.Y;
}
}

if (left < minLeft)
Expand All @@ -718,23 +720,25 @@ void SetSize(int width, int height, Screen screen, bool checkAutofit = true, boo
SetWindowPos(Handle, IntPtr.Zero, left, top, width, height, SWP_NOACTIVATE);
}

(int x, int y) ParseGeometry(string input, Rectangle workingArea, int width, int height)
Point ParseGeometry(string input, int width, int height)
{
int x = int.MaxValue;
int y = int.MaxValue;

Match match = Regex.Match(input, @"^(\d+)%?:(\d+)%?$");
Match match = Regex.Match(input, @"^\+(\d+)%?\+(\d+)%?$");

if (match.Success)
{
Rectangle workingArea = GetWorkingArea(Handle, Screen.FromHandle(Handle).WorkingArea);

x = int.Parse(match.Groups[1].Value);
y = int.Parse(match.Groups[2].Value);

x = workingArea.Left + Convert.ToInt32((workingArea.Width - width) / 100.0 * x);
y = workingArea.Top + Convert.ToInt32((workingArea.Height - height) / 100.0 * y);
}

return (x, y);
return new Point(x, y);
}

public void CycleFullscreen(bool enabled)
Expand Down

0 comments on commit 85e4e3f

Please sign in to comment.