Changeset 2335 for trunk/src/user32/new/pmwindow.cpp
- Timestamp:
- Jan 5, 2000, 10:25:08 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/new/pmwindow.cpp
r2291 r2335 1 /* $Id: pmwindow.cpp,v 1.3 2 2000-01-01 17:07:42cbratschi Exp $ */1 /* $Id: pmwindow.cpp,v 1.33 2000-01-05 21:25:05 cbratschi Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 243 243 break; 244 244 245 #if 1246 245 case WM_ADJUSTWINDOWPOS: 247 { 248 // PSWP pswp = (PSWP)mp1; 249 250 // dprintf(("OS2: WM_ADJUSTWINDOWPOS %x %x %x (%d,%d) (%d,%d)", hwnd, pswp->hwnd, pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy)); 251 goto RunDefWndProc; 252 } 253 #else 254 case WM_ADJUSTWINDOWPOS: 255 { 256 PSWP pswp = (PSWP)mp1; 257 SWP swpOld, swpNew; 258 WINDOWPOS wp; 259 ULONG parentHeight = 0; 260 HWND hParent = NULLHANDLE, hFrame = NULLHANDLE, hwndAfter; 261 262 dprintf(("OS2: WM_ADJUSTWINDOWPOS %x %x %x (%d,%d) (%d,%d)", hwnd, pswp->hwnd, pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy)); 263 264 if ((pswp->fl & (SWP_SIZE | SWP_MOVE | SWP_ZORDER)) == 0) goto RunDefWndProc;; 265 266 //SvL: TODO: Workaround. Why is this happening? 267 // When this flag is set the coordinates are 0, even though SWP_SIZE & SWP_MOVE are set. 268 // if ((pswp->fl & SWP_NOADJUST)) goto RunDefWndProc; 269 270 if(!win32wnd->CanReceiveSizeMsgs()) goto RunDefWndProc;; 271 272 WinQueryWindowPos(hwnd, &swpOld); 273 274 if(pswp->fl & (SWP_MOVE | SWP_SIZE)) { 275 if (win32wnd->isChild()) { 276 if(win32wnd->getParent()) { 277 hParent = win32wnd->getParent()->getOS2WindowHandle(); 278 } 279 else goto RunDefWndProc;; 280 } 281 } 282 hwndAfter = pswp->hwndInsertBehind; 283 hFrame = win32wnd->getOS2FrameWindowHandle(); 284 OSLibMapSWPtoWINDOWPOS(pswp, &wp, &swpOld, hParent, hFrame); 285 286 wp.hwnd = win32wnd->getWindowHandle(); 287 if ((pswp->fl & SWP_ZORDER) && (pswp->hwndInsertBehind > HWND_BOTTOM)) 288 { 289 Win32BaseWindow *wndAfter = Win32BaseWindow::GetWindowFromOS2Handle(pswp->hwndInsertBehind); 290 if(wndAfter) wp.hwndInsertAfter = wndAfter->getWindowHandle(); 291 } 292 if(win32wnd->MsgPosChanging((LPARAM)&wp) == 0) 293 {//app or default window handler changed wp 294 dprintf(("OS2: WM_ADJUSTWINDOWPOS, app changed windowpos struct")); 295 dprintf(("%x (%d,%d), (%d,%d)", pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy)); 296 OSLibMapWINDOWPOStoSWP(&wp, &swpNew, &swpOld, hParent, hFrame); 297 dprintf(("%x (%d,%d), (%d,%d)", swpNew.fl, swpNew.x, swpNew.y, swpNew.cx, swpNew.cy)); 298 swpNew.fl |= SWP_NOADJUST; 299 swpNew.hwndInsertBehind = hwndAfter; 300 swpNew.hwnd = hFrame; 301 302 WinSetMultWindowPos(GetThreadHAB(), &swpNew, 1); 303 return (MRESULT)0; 304 } 305 break; 306 } 307 #endif 246 goto RunDefWndProc; 308 247 309 248 case WM_WINDOWPOSCHANGED: … … 584 523 585 524 win32wnd->setWindowRect(swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy); 586 win32wnd->setClientRect(swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy);525 //win32wnd->setClientRect(swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy); 587 526 wp.x = swpOld.x; 588 527 wp.y = swpOld.y;
Note:
See TracChangeset
for help on using the changeset viewer.