0030157: Draw Harness - xwd image dump should not be limited by desktop size within...
authorkgv <kgv@opencascade.com>
Mon, 24 Sep 2018 08:31:40 +0000 (11:31 +0300)
committerbugmaster <bugmaster@opencascade.com>
Mon, 24 Sep 2018 14:57:45 +0000 (17:57 +0300)
DrawWindow now uses SWP_NOSENDCHANGING flag within batch mode to ensure
that created window is not clipped in size by desktop dimensions.

src/Draw/Draw_Window.cxx

index 2fac12b..93a4606 100644 (file)
@@ -1634,10 +1634,12 @@ void DrawWindow::ReleaseMemDC(HDC theMemDC)
 \*--------------------------------------------------------*/
 void DrawWindow::SetPosition(Standard_Integer posX, Standard_Integer posY)
 {
-  SetWindowPos(win, 0,
-               posX, posY,
-               0, 0,
-               SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER);
+  UINT aFlags = SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER;
+  if (Draw_VirtualWindows)
+  {
+    aFlags |= SWP_NOSENDCHANGING;
+  }
+  SetWindowPos (win, 0, posX, posY, 0, 0, aFlags);
 }
 
 
@@ -1646,10 +1648,12 @@ void DrawWindow::SetPosition(Standard_Integer posX, Standard_Integer posY)
 \*--------------------------------------------------------*/
 void DrawWindow::SetDimension(Standard_Integer dimX, Standard_Integer dimY)
 {
-  SetWindowPos(win, 0,
-               0, 0,
-               dimX, dimY,
-               SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);
+  UINT aFlags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER;
+  if (Draw_VirtualWindows)
+  {
+    aFlags |= SWP_NOSENDCHANGING;
+  }
+  SetWindowPos (win, 0, 0, 0, dimX, dimY, aFlags);
 }