|
|
@ -245,19 +245,13 @@ namespace Avalonia.Win32 |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE); |
|
|
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE); |
|
|
|
|
|
|
|
|
var systemDecorationStyles = UnmanagedMethods.WindowStyles.WS_OVERLAPPED |
|
|
style |= UnmanagedMethods.WindowStyles.WS_OVERLAPPEDWINDOW; |
|
|
| UnmanagedMethods.WindowStyles.WS_CAPTION |
|
|
|
|
|
| UnmanagedMethods.WindowStyles.WS_SYSMENU |
|
|
|
|
|
| UnmanagedMethods.WindowStyles.WS_MINIMIZEBOX |
|
|
|
|
|
| UnmanagedMethods.WindowStyles.WS_MAXIMIZEBOX; |
|
|
|
|
|
|
|
|
|
|
|
style |= systemDecorationStyles; |
|
|
|
|
|
|
|
|
|
|
|
if (!value) |
|
|
if (!value) |
|
|
{ |
|
|
{ |
|
|
style ^= systemDecorationStyles; |
|
|
style ^= UnmanagedMethods.WindowStyles.WS_OVERLAPPEDWINDOW; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
UnmanagedMethods.RECT windowRect; |
|
|
UnmanagedMethods.RECT windowRect; |
|
|
@ -293,6 +287,21 @@ namespace Avalonia.Win32 |
|
|
UnmanagedMethods.SetWindowPosFlags.SWP_NOZORDER | UnmanagedMethods.SetWindowPosFlags.SWP_NOACTIVATE); |
|
|
UnmanagedMethods.SetWindowPosFlags.SWP_NOZORDER | UnmanagedMethods.SetWindowPosFlags.SWP_NOACTIVATE); |
|
|
|
|
|
|
|
|
_decorated = value; |
|
|
_decorated = value; |
|
|
|
|
|
|
|
|
|
|
|
if(_decorated) |
|
|
|
|
|
{ |
|
|
|
|
|
if (_resizable) |
|
|
|
|
|
{ |
|
|
|
|
|
// If we switch decorations back on we need to restore WS_SizeFrame.
|
|
|
|
|
|
_resizable = false; |
|
|
|
|
|
CanResize(true); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
_resizable = true; |
|
|
|
|
|
CanResize(false); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void Invalidate(Rect rect) |
|
|
public void Invalidate(Rect rect) |
|
|
@ -863,14 +872,18 @@ namespace Avalonia.Win32 |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE); |
|
|
if (_decorated) |
|
|
|
|
|
{ |
|
|
if (value) |
|
|
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE); |
|
|
style |= UnmanagedMethods.WindowStyles.WS_SIZEFRAME; |
|
|
|
|
|
else |
|
|
if (value) |
|
|
style &= ~(UnmanagedMethods.WindowStyles.WS_SIZEFRAME); |
|
|
style |= UnmanagedMethods.WindowStyles.WS_SIZEFRAME; |
|
|
|
|
|
else |
|
|
UnmanagedMethods.SetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE, (uint)style); |
|
|
style &= ~(UnmanagedMethods.WindowStyles.WS_SIZEFRAME); |
|
|
|
|
|
|
|
|
|
|
|
UnmanagedMethods.SetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE, (uint)style); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
_resizable = value; |
|
|
_resizable = value; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|