Browse Source

Merge pull request #9674 from MinikPLayer/master

Fix: incorrect window startup position on Linux
pull/9737/head
Max Katz 3 years ago
committed by GitHub
parent
commit
95c0836442
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      src/Avalonia.X11/X11Window.cs

12
src/Avalonia.X11/X11Window.cs

@ -57,6 +57,7 @@ namespace Avalonia.X11
private TransparencyHelper _transparencyHelper;
private RawEventGrouper _rawEventGrouper;
private bool _useRenderWindow = false;
private bool _usePositioningFlags = false;
enum XSyncState
{
@ -298,7 +299,10 @@ namespace Avalonia.X11
min_height = min.Height
};
hints.height_inc = hints.width_inc = 1;
var flags = XSizeHintsFlags.PMinSize | XSizeHintsFlags.PResizeInc | XSizeHintsFlags.PPosition | XSizeHintsFlags.PSize;
var flags = XSizeHintsFlags.PMinSize | XSizeHintsFlags.PResizeInc;
if (_usePositioningFlags)
flags |= XSizeHintsFlags.PPosition | XSizeHintsFlags.PSize;
// People might be passing double.MaxValue
if (max.Width < 100000 && max.Height < 100000)
{
@ -958,6 +962,12 @@ namespace Avalonia.X11
get => _position ?? default;
set
{
if(!_usePositioningFlags)
{
_usePositioningFlags = true;
UpdateSizeHints(null);
}
var changes = new XWindowChanges
{
x = (int)value.X,

Loading…
Cancel
Save