Additional modifications to the window styles during window creation.
diff --git a/windows/win.c b/windows/win.c
index ed9d7a7..9d38ce1 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -709,6 +709,25 @@
WIN_FixCoordinates(cs, &sw); /* fix default coordinates */
+ /* Correct the window style - stage 1
+ *
+ * These are patches that appear to affect both the style loaded into the
+ * WIN structure and passed in the CreateStruct to the WM_CREATE etc.
+ *
+ * WS_EX_WINDOWEDGE appears to be enforced based on the other styles, so
+ * why does the user get to set it?
+ */
+
+ /* This has been tested for WS_CHILD | WS_VISIBLE. It has not been
+ * tested for WS_POPUP
+ */
+ if ((cs->dwExStyle & WS_EX_DLGMODALFRAME) ||
+ ((!(cs->dwExStyle & WS_EX_STATICEDGE)) &&
+ (cs->style & (WS_DLGFRAME | WS_THICKFRAME))))
+ cs->dwExStyle |= WS_EX_WINDOWEDGE;
+ else
+ cs->dwExStyle &= ~WS_EX_WINDOWEDGE;
+
/* Create the window structure */
if (!(hwnd = USER_HEAP_ALLOC( sizeof(*wndPtr) + wndExtra - sizeof(wndPtr->wExtra) )))
@@ -795,7 +814,7 @@
}
}
- /* Correct the window style */
+ /* Correct the window style - stage 2 */
if (!(cs->style & WS_CHILD))
{