Ver Fonte

windisplay: Fix parented window receiving WS_POPUP style

Fixes #915
rdb há 5 anos atrás
pai
commit
a968caf1d2
1 ficheiros alterados com 16 adições e 8 exclusões
  1. 16 8
      panda/src/windisplay/winGraphicsWindow.cxx

+ 16 - 8
panda/src/windisplay/winGraphicsWindow.cxx

@@ -973,17 +973,25 @@ make_style(const WindowProperties &properties) {
   // Additionally, the window class attribute should not include the
   // CS_PARENTDC style.
 
-  DWORD window_style = WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
+  DWORD window_style = WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
 
   if (properties.get_fullscreen()) {
-    window_style |= WS_SYSMENU;
-  } else if (!properties.get_undecorated()) {
-    window_style |= (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
-
-    if (!properties.get_fixed_size()) {
-      window_style |= (WS_SIZEBOX | WS_MAXIMIZEBOX);
+    window_style |= WS_POPUP | WS_SYSMENU;
+  } else {
+    if (_parent_window_handle) {
+      window_style |= WS_CHILD;
     } else {
-      window_style |= WS_BORDER;
+      window_style |= WS_POPUP;
+    }
+
+    if (!properties.get_undecorated()) {
+      window_style |= (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
+
+      if (!properties.get_fixed_size()) {
+        window_style |= (WS_SIZEBOX | WS_MAXIMIZEBOX);
+      } else {
+        window_style |= WS_BORDER;
+      }
     }
   }
   return window_style;