Ignore:
Timestamp:
Jan 14, 2000, 2:16:59 PM (26 years ago)
Author:
sandervl
Message:

Several window position bugfixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/new/oslibmsgtranslate.cpp

    r2426 r2435  
    1 /* $Id: oslibmsgtranslate.cpp,v 1.13 2000-01-13 13:54:52 sandervl Exp $ */
     1/* $Id: oslibmsgtranslate.cpp,v 1.14 2000-01-14 13:16:57 sandervl Exp $ */
    22/*
    33 * Window message translation functions for OS/2
     
    236236        return TRUE;
    237237      }
     238      case WM_WINDOWPOSCHANGED:
     239      {
     240        //todo: proper translation
     241        return FALSE;
     242      }
    238243    }
    239244    //do normal translation for all other messages
     
    318323        if (!win32wnd->CanReceiveSizeMsgs())    goto dummymessage;
    319324
    320         dprintf(("Set client rectangle to (%d,%d)(%d,%d)", swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy));
    321         win32wnd->setClientRect(swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy);
    322 
    323         thdb->wp.hwnd = win32wnd->getWindowHandle();
    324         if ((pswp->fl & SWP_ZORDER) && (pswp->hwndInsertBehind > HWND_BOTTOM))
    325         {
    326            Win32BaseWindow *wndAfter = Win32BaseWindow::GetWindowFromOS2Handle(pswp->hwndInsertBehind);
    327            if(wndAfter)
    328                 thdb->wp.hwndInsertAfter = wndAfter->getWindowHandle();
    329         }
    330 
    331         PRECT lpRect = win32wnd->getWindowRect();
    332         //SvL: Only send it when the client has changed & the frame hasn't
    333         //     If the frame size/position has changed, pmframe.cpp will send
    334         //     this message
    335         if(lpRect->right == thdb->wp.x+thdb->wp.cx && lpRect->bottom == thdb->wp.y+thdb->wp.cy) {
    336                 winMsg->message = WINWM_WINDOWPOSCHANGED;
    337                 winMsg->lParam  = (LPARAM)&thdb->wp;
    338         }
    339         else {
    340 ////            win32wnd->setWindowRect(thdb->wp.x, thdb->wp.y, thdb->wp.x+thdb->wp.cx, thdb->wp.y+thdb->wp.cy);
    341             goto dummymessage;
    342         }
     325        if(pswp->fl & (SWP_MOVE | SWP_SIZE)) {
     326                dprintf(("Set client rectangle to (%d,%d)(%d,%d)", swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy));
     327                win32wnd->setClientRect(swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy);
     328
     329                thdb->wp.hwnd = win32wnd->getWindowHandle();
     330                if ((pswp->fl & SWP_ZORDER) && (pswp->hwndInsertBehind > HWND_BOTTOM))
     331                {
     332                        Win32BaseWindow *wndAfter = Win32BaseWindow::GetWindowFromOS2Handle(pswp->hwndInsertBehind);
     333                        if(wndAfter)
     334                        thdb->wp.hwndInsertAfter = wndAfter->getWindowHandle();
     335                }
     336
     337                PRECT lpRect = win32wnd->getWindowRect();
     338                //SvL: Only send it when the client has changed & the frame hasn't
     339                //     If the frame size/position has changed, pmframe.cpp will send
     340                //     this message
     341                if(lpRect->right == thdb->wp.x+thdb->wp.cx && lpRect->bottom == thdb->wp.y+thdb->wp.cy) {
     342                        winMsg->message = WINWM_WINDOWPOSCHANGED;
     343                        winMsg->lParam  = (LPARAM)&thdb->wp;
     344                        break;
     345                }
     346        }
     347        goto dummymessage;
    343348    }
    344349
Note: See TracChangeset for help on using the changeset viewer.