diff --git a/samples/ControlCatalog/MainWindow.xaml b/samples/ControlCatalog/MainWindow.xaml
index 4be11f13b3..e722206fd0 100644
--- a/samples/ControlCatalog/MainWindow.xaml
+++ b/samples/ControlCatalog/MainWindow.xaml
@@ -2,7 +2,5 @@
Title="Avalonia Control Gallery"
Icon="resm:ControlCatalog.Assets.test_icon.ico?assembly=ControlCatalog"
xmlns:local="clr-namespace:ControlCatalog" Background="Transparent">
-
-
-
-
+
+
diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs
index 395ea43999..17b72955bc 100644
--- a/src/Windows/Avalonia.Win32/WindowImpl.cs
+++ b/src/Windows/Avalonia.Win32/WindowImpl.cs
@@ -269,11 +269,6 @@ namespace Avalonia.Win32
style |= UnmanagedMethods.WindowStyles.WS_OVERLAPPEDWINDOW;
- if (!value)
- {
- style ^= UnmanagedMethods.WindowStyles.WS_OVERLAPPEDWINDOW;
- }
-
UnmanagedMethods.RECT windowRect;
UnmanagedMethods.GetWindowRect(_hwnd, out windowRect);
@@ -282,32 +277,29 @@ namespace Avalonia.Win32
var oldThickness = BorderThickness;
UnmanagedMethods.SetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE, (uint)style);
+
+ var thickness = BorderThickness;
+
+ _decorated = value;
- if (value)
- {
- var thickness = BorderThickness;
+ newRect = new Rect(
+ windowRect.left - thickness.Left,
+ windowRect.top - thickness.Top,
+ (windowRect.right - windowRect.left) + (thickness.Left + thickness.Right),
+ (windowRect.bottom - windowRect.top) + (thickness.Top + thickness.Bottom));
- newRect = new Rect(
- windowRect.left - thickness.Left,
- windowRect.top - thickness.Top,
- (windowRect.right - windowRect.left) + (thickness.Left + thickness.Right),
- (windowRect.bottom - windowRect.top) + (thickness.Top + thickness.Bottom));
- }
- else
+ if(!value)
{
- newRect = new Rect(
- windowRect.left + oldThickness.Left,
- windowRect.top + oldThickness.Top,
- (windowRect.right - windowRect.left) - (oldThickness.Left + oldThickness.Right),
- (windowRect.bottom - windowRect.top) - (oldThickness.Top + oldThickness.Bottom));
+ RECT rc = new RECT();
+ uint style1 = UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE);
+ uint styleEx1 = UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_EXSTYLE);
+ UnmanagedMethods.AdjustWindowRectEx(ref rc, style1, false, styleEx1);
}
UnmanagedMethods.SetWindowPos(_hwnd, IntPtr.Zero, (int)newRect.X, (int)newRect.Y, (int)newRect.Width,
(int)newRect.Height,
UnmanagedMethods.SetWindowPosFlags.SWP_NOZORDER | UnmanagedMethods.SetWindowPosFlags.SWP_NOACTIVATE);
- _decorated = value;
-
if(_decorated)
{
if (_resizable)
@@ -455,54 +447,6 @@ namespace Avalonia.Win32
IntPtr.Zero);
}
-
- protected int BorderTop { get; private set; }
- protected int BorderLeft { get; private set; }
- protected int BorderRight { get; private set; }
- protected int BorderBottom { get; private set; }
-
- private HitTestValues NCHitText(uint m, IntPtr LParam, IntPtr wParam)
- {
- int lParam = (int)LParam;
- Point pt = new Point(lParam & 0xffff, lParam >> 16);
-
- var rc = new Rect(Position, ClientSize);
-
- int row = 1;
- int col = 1;
- bool onResizeBorder = false;
-
- // Determine if we are on the top or bottom border
- if (pt.Y >= rc.Top && pt.Y < rc.Top + BorderTop)
- {
- onResizeBorder = pt.Y < (rc.Top + BorderBottom);
- row = 0;
- }
- else if (pt.Y < rc.Bottom && pt.Y > rc.Bottom - BorderBottom)
- {
- row = 2;
- }
-
- // Determine if we are on the left border or the right border
- if (pt.X >= rc.Left && pt.X < rc.Left + BorderLeft)
- {
- col = 0;
- }
- else if (pt.X < rc.Right && pt.X >= rc.Right - BorderRight)
- {
- col = 2;
- }
-
- HitTestValues[,] hitTests = new HitTestValues[,]
- {
- {HitTestValues.HTTOPLEFT, onResizeBorder ? HitTestValues.HTTOP : HitTestValues.HTCAPTION, HitTestValues.HTTOPRIGHT},
- {HitTestValues.HTLEFT, HitTestValues.HTNOWHERE, HitTestValues.HTRIGHT},
- {HitTestValues.HTBOTTOMLEFT, HitTestValues.HTBOTTOM, HitTestValues.HTBOTTOMRIGHT}
- };
-
- return hitTests[row, col];
- }
-
[SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "SA1305:FieldNamesMustNotUseHungarianNotation", Justification = "Using Win32 naming for consistency.")]
protected virtual IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
{
@@ -513,8 +457,6 @@ namespace Avalonia.Win32
RawInputEventArgs e = null;
- bool callDWP = false;
-
WindowsMouseDevice.Instance.CurrentWindow = this;
switch ((UnmanagedMethods.WindowsMessage)msg)
@@ -534,53 +476,14 @@ namespace Avalonia.Win32
break;
}
- MARGINS margins = new MARGINS();
-
- margins.leftWidth = Math.Abs(BorderLeft);
- margins.rightWidth = Math.Abs(BorderRight);
- margins.bottomHeight = Math.Abs(BorderBottom);
- margins.topHeight = Math.Abs(BorderTop);
-
- // int hr = UnmanagedMethods.DwmExtendFrameIntoClientArea(hWnd, ref margins);
-
return IntPtr.Zero;
case WindowsMessage.WM_NCCALCSIZE:
- return IntPtr.Zero;
- //break;
-
- case WindowsMessage.WM_CREATE:
- RECT rcClient;
- UnmanagedMethods.GetWindowRect(hWnd, out rcClient);
-
-
- RECT rc = new RECT();
- uint style = UnmanagedMethods.GetWindowLong(hWnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE);
- uint styleEx = UnmanagedMethods.GetWindowLong(hWnd, (int)UnmanagedMethods.WindowLongParam.GWL_EXSTYLE);
- UnmanagedMethods.AdjustWindowRectEx(ref rc, style, false, styleEx);
-
- BorderTop = Math.Abs(rc.top);
- BorderLeft = Math.Abs(0);
- BorderRight = Math.Abs(0);
- BorderBottom = Math.Abs(0);
- break;
-
- case WindowsMessage.WM_NCHITTEST:
- var ht = NCHitText(msg, lParam, wParam);
-
-
- callDWP = (ht == HitTestValues.HTNOWHERE);
-
- if (callDWP)
+ if (!_decorated)
{
-
- }
- else
- {
- return new IntPtr((int)ht);
+ return IntPtr.Zero;
}
- break;
-
+ break;
case UnmanagedMethods.WindowsMessage.WM_CLOSE:
bool? preventClosing = Closing?.Invoke();