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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
11 additions and
1 deletions
-
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, |
|
|
|
|