Wow,
too much in my inbox!

Yeah, I guess we can just go with NtGDI only calls.

On Sun, Dec 25, 2016 at 10:35 AM, Thomas Faber <thomas.faber@reactos.org> wrote:
On 2016-12-22 11:39, jimtabor@svn.reactos.org wrote:
+#ifndef _WIN32K_ ///// Fix CORE-2201.
+    if (!(flags & DT_NOCLIP) )
+    {
+       int hasClip;
+       hrgn = CreateRectRgn(0,0,0,0);
+       if (hrgn)
+       {
+          hasClip = GetClipRgn(hdc, hrgn);
+          // If the region to be retrieved is NULL, the return value is 0.
+          if (hasClip != 1)
+          {
+             DeleteObject(hrgn);
+             hrgn = NULL;
+          }
+          IntersectClipRect(hdc, rect->left, rect->top, rect->right, rect->bottom);
+       }
+    }
+#else
+    if (!(flags & DT_NOCLIP) )
+    {
+       int hasClip;
+       hrgn = NtGdiCreateRectRgn(0,0,0,0);
+       if (hrgn)
+       {
+          hasClip = NtGdiGetRandomRgn(hdc, hrgn, CLIPRGN);
+          if (hasClip != 1)
+          {
+             GreDeleteObject(hrgn);
+             hrgn = NULL;
+          }
+          NtGdiIntersectClipRect(hdc, rect->left, rect->top, rect->right, rect->bottom);
+       }
+    }
+#endif /////

Any particular reason not to simply do the NtGdi call in both user
and kernel? Looks like they should be doing the exact same thing.

_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev