Dmitry Timoshkov dmitry@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@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 Timoshkov dmitry@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@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 Timoshkov dmitry@codeweavers.com writes:
Alexandre Julliard julliard@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.