Re: winex11.drv: Make sure that default clipping region exists before calling ExcludeUpdateRgn().
Dmitry Timoshkov <dmitry(a)codeweavers.com> writes:
If there is no current clipping region ExtSelectClipRgn(hdc, hrgn, RGN_DIFF) creates its own default clipping region which in most cases doesn't match neither a visible region nor the window extents attached to the DC.
It will get intersected with the visible region anyway, so it shouldn't matter as long as it's large enough. Why does it make a difference? -- Alexandre Julliard julliard(a)winehq.org
Alexandre Julliard <julliard(a)winehq.org> wrote:
If there is no current clipping region ExtSelectClipRgn(hdc, hrgn, RGN_DIFF) creates its own default clipping region which in most cases doesn't match neither a visible region nor the window extents attached to the DC.
It will get intersected with the visible region anyway, so it shouldn't matter as long as it's large enough. Why does it make a difference?
I looks like the default clip region created by ExtSelectClipRgn() uses the dimensions of the selected bitmap, and it's not large enough. -- Dmitry.
Dmitry Timoshkov <dmitry(a)codeweavers.com> writes:
I looks like the default clip region created by ExtSelectClipRgn() uses the dimensions of the selected bitmap, and it's not large enough.
That's a window DC, it doesn't have a selected bitmap. -- Alexandre Julliard julliard(a)winehq.org
Alexandre Julliard <julliard(a)winehq.org> wrote:
I looks like the default clip region created by ExtSelectClipRgn() uses the dimensions of the selected bitmap, and it's not large enough.
That's a window DC, it doesn't have a selected bitmap.
You are right. The app creates very large child window to fit the whole map inside it (it's at least two times larger than the screen), and moves the child window inside the parent window once one presses mouse button and drags the map (when I drag the map into the left top corner the coordinates of the child window are about -970,-860 while the screen resolution is 1680x1050 in my case). So, using the screen size for a default clipping is not enough. -- Dmitry.
Dmitry Timoshkov <dmitry(a)codeweavers.com> writes:
Alexandre Julliard <julliard(a)winehq.org> wrote:
I looks like the default clip region created by ExtSelectClipRgn() uses the dimensions of the selected bitmap, and it's not large enough.
That's a window DC, it doesn't have a selected bitmap.
You are right. The app creates very large child window to fit the whole map inside it (it's at least two times larger than the screen), and moves the child window inside the parent window once one presses mouse button and drags the map (when I drag the map into the left top corner the coordinates of the child window are about -970,-860 while the screen resolution is 1680x1050 in my case). So, using the screen size for a default clipping is not enough.
OK, that makes sense. It sounds like a test case for ExtSelectClipRgn is in order, before we work around it. -- Alexandre Julliard julliard(a)winehq.org
participants (2)
-
Alexandre Julliard -
Dmitry Timoshkov