Changeset 10060 for trunk/src/user32/pmwindow.cpp
- Timestamp:
- May 2, 2003, 5:33:17 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/pmwindow.cpp
r10045 r10060 1 /* $Id: pmwindow.cpp,v 1.21 2 2003-04-28 08:41:07sandervl Exp $ */1 /* $Id: pmwindow.cpp,v 1.213 2003-05-02 15:33:15 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 655 655 656 656 win32wnd->callVisibleRgnNotifyProc(TRUE); 657 658 //Workaround for PM/GPI bug when moving/sizing a window with open DCs 659 // 660 //Windows applictions often get a DC and keep it open for the duration 661 //of the application. When the DC's window is moved (full window dragging on) 662 //PM/GPI doesn't seem to update the DC properly/in time. 663 //This can result is visible distortions on the screen. 664 //Debugging showed that querying the visible region of a DC will cure 665 //this problem (GPI probably recalculates the visible region). 666 int nrdcs = 0; 667 HDC hdcWindow[MAX_OPENDCS]; 668 669 if(win32wnd->queryOpenDCs(hdcWindow, MAX_OPENDCS, &nrdcs)) 670 { 671 RECTL rcl = {0,0,1,1}; 672 HRGN hrgnRect; 673 674 for(int i=0;i<nrdcs;i++) { 675 dprintf(("Recalc visible region of DC %x for window %x", hdcWindow[i], win32wnd->getWindowHandle())); 676 hrgnRect = GreCreateRectRegion(hdcWindow[i], &rcl, 1); 677 GreCopyClipRegion(hdcWindow[i], hrgnRect, 0, COPYCRGN_VISRGN); 678 GreDestroyRegion(hdcWindow[i], hrgnRect); 679 } 680 } 681 682 //Workaround END 683 657 684 if(!win32wnd->isComingToTop() && ((win32wnd->getExStyle() & WS_EX_TOPMOST_W) == WS_EX_TOPMOST_W)) 658 685 {
Note:
See TracChangeset
for help on using the changeset viewer.