|
|
@ -1087,6 +1087,8 @@ namespace Avalonia.Win32 |
|
|
throw new ArgumentException("Invalid WindowState."); |
|
|
throw new ArgumentException("Invalid WindowState."); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
newWindowProperties.WindowState = state; |
|
|
|
|
|
|
|
|
UpdateWindowProperties(newWindowProperties); |
|
|
UpdateWindowProperties(newWindowProperties); |
|
|
|
|
|
|
|
|
if (command.HasValue) |
|
|
if (command.HasValue) |
|
|
@ -1292,7 +1294,7 @@ namespace Avalonia.Win32 |
|
|
if (IsWindowVisible(_hwnd)) |
|
|
if (IsWindowVisible(_hwnd)) |
|
|
style |= WindowStyles.WS_VISIBLE; |
|
|
style |= WindowStyles.WS_VISIBLE; |
|
|
|
|
|
|
|
|
if (newProperties.IsResizable) |
|
|
if (newProperties.IsResizable || newProperties.WindowState == WindowState.Maximized) |
|
|
{ |
|
|
{ |
|
|
style |= WindowStyles.WS_SIZEFRAME; |
|
|
style |= WindowStyles.WS_SIZEFRAME; |
|
|
style |= WindowStyles.WS_MAXIMIZEBOX; |
|
|
style |= WindowStyles.WS_MAXIMIZEBOX; |
|
|
@ -1303,7 +1305,7 @@ namespace Avalonia.Win32 |
|
|
style &= ~WindowStyles.WS_MAXIMIZEBOX; |
|
|
style &= ~WindowStyles.WS_MAXIMIZEBOX; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const WindowStyles fullDecorationFlags = WindowStyles.WS_CAPTION | WindowStyles.WS_SYSMENU; |
|
|
const WindowStyles fullDecorationFlags = WindowStyles.WS_CAPTION | WindowStyles.WS_SYSMENU | WindowStyles.WS_THICKFRAME | WindowStyles.WS_BORDER; |
|
|
|
|
|
|
|
|
if (newProperties.Decorations == SystemDecorations.Full) |
|
|
if (newProperties.Decorations == SystemDecorations.Full) |
|
|
{ |
|
|
{ |
|
|
@ -1313,7 +1315,7 @@ namespace Avalonia.Win32 |
|
|
{ |
|
|
{ |
|
|
style &= ~fullDecorationFlags; |
|
|
style &= ~fullDecorationFlags; |
|
|
|
|
|
|
|
|
if (newProperties.Decorations == SystemDecorations.BorderOnly && WindowState != WindowState.Maximized) |
|
|
if (newProperties.Decorations == SystemDecorations.BorderOnly && newProperties.WindowState != WindowState.Maximized) |
|
|
{ |
|
|
{ |
|
|
style |= WindowStyles.WS_THICKFRAME | WindowStyles.WS_BORDER; |
|
|
style |= WindowStyles.WS_THICKFRAME | WindowStyles.WS_BORDER; |
|
|
} |
|
|
} |
|
|
@ -1487,6 +1489,7 @@ namespace Avalonia.Win32 |
|
|
public bool IsResizable; |
|
|
public bool IsResizable; |
|
|
public SystemDecorations Decorations; |
|
|
public SystemDecorations Decorations; |
|
|
public bool IsFullScreen; |
|
|
public bool IsFullScreen; |
|
|
|
|
|
public WindowState WindowState; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private struct ResizeReasonScope : IDisposable |
|
|
private struct ResizeReasonScope : IDisposable |
|
|
|