Ignore:
Timestamp:
Jul 19, 1999, 8:40:44 PM (26 years ago)
Author:
sandervl
Message:

Point/Rectangle bug fixes

File:
1 edited

Legend:

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

    r338 r340  
    1 /* $Id: pmwindow.cpp,v 1.11 1999-07-19 13:58:38 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.12 1999-07-19 18:40:43 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    6969     (PSZ)WIN32_STDCLASS,               /* Window class name            */
    7070     (PFNWP)Win32WindowProc,            /* Address of window procedure  */
    71      CS_SIZEREDRAW | CS_MOVENOTIFY | CS_HITTEST,
     71     CS_SIZEREDRAW | CS_HITTEST,
    7272     8)) {
    7373        dprintf(("WinRegisterClass Win32Window failed"));
     
    8383{
    8484 POSTMSG_PACKET *postmsg;
    85  Win32Window  *win32wnd;
    86  APIRET        rc;
     85 OSLIBPOINT      point;
     86 Win32Window    *win32wnd;
     87 APIRET          rc;
    8788
    8889  //Restore our FS selector
     
    160161        break;
    161162
    162     case WM_MOVE:
     163    case WM_ADJUSTWINDOWPOS:
    163164    {
    164165      RECTLOS2 rectChild;
    165166      ULONG x, y;
    166167
    167         dprintf(("OS2: WM_MOVE %x", hwnd));
     168        dprintf(("OS2: WM_ADJUSTWINDOWPOS %x", hwnd));
    168169
    169170        WinQueryWindowRect(hwnd, (PRECTL)&rectChild);
     
    171172        //Calculate position relative to parent window (real window or desktop)
    172173        x = rectChild.xLeft;
    173         y = MapOS2ToWin32Y(hwnd, &rectChild, rectChild.yBottom);
     174//        y = MapOS2ToWin32Y(hwnd, &rectChild, rectChild.yBottom);
    174175
    175176        if(win32wnd->MsgMove(x, y)) {
     
    182183    {
    183184        dprintf(("OS2: WM_WINDOWPOSCHANGED %x", hwnd));
    184     }
    185 
    186     case WM_ADJUSTWINDOWPOS:
    187     {
    188         dprintf(("OS2: WM_ADJUSTWINDOWPOS %x", hwnd));
    189 //          if(win32wnd->MsgWindowPosChanging(0, 0)) {
    190                 goto RunDefWndProc;
    191 //  }
    192         break;
    193185    }
    194186
     
    269261    }
    270262    //**************************************************************************
    271     //Mouse messages
     263    //Mouse messages (OS/2 Window coordinates -> Win32 coordinates relative to screen
    272264    //**************************************************************************
    273265    case WM_BUTTON1DOWN:
    274266        dprintf(("OS2: WM_BUTTON1DOWN %x", hwnd));
    275         if(win32wnd->MsgButton(BUTTON_LEFTDOWN, (*(POINTS *)&mp1).x, MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
    276                 goto RunDefWndProc;
    277         }
    278         break;
     267        point.x = (*(POINTS *)&mp1).x;
     268        point.y = (*(POINTS *)&mp1).y;
     269        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     270        if(win32wnd->MsgButton(BUTTON_LEFTDOWN, point.x, point.y)) {
     271                goto RunDefWndProc;
     272        }
     273        break;
     274
    279275    case WM_BUTTON1UP:
    280276        dprintf(("OS2: WM_BUTTON1UP %x", hwnd));
    281         if(win32wnd->MsgButton(BUTTON_LEFTUP, (*(POINTS *)&mp1).x, MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     277        point.x = (*(POINTS *)&mp1).x;
     278        point.y = (*(POINTS *)&mp1).y;
     279        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     280        if(win32wnd->MsgButton(BUTTON_LEFTUP, point.x, point.y)) {
    282281                goto RunDefWndProc;
    283282        }
    284283        break;
    285284    case WM_BUTTON1DBLCLK:
    286         if(win32wnd->MsgButton(BUTTON_LEFTDBLCLICK, (*(POINTS *)&mp1).x, MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     285        point.x = (*(POINTS *)&mp1).x;
     286        point.y = (*(POINTS *)&mp1).y;
     287        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     288        if(win32wnd->MsgButton(BUTTON_LEFTDBLCLICK, point.x, point.y)) {
    287289                goto RunDefWndProc;
    288290        }
    289291        break;
    290292    case WM_BUTTON2DOWN:
    291         if(win32wnd->MsgButton(BUTTON_RIGHTDOWN, (*(POINTS *)&mp1).x, MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     293        point.x = (*(POINTS *)&mp1).x;
     294        point.y = (*(POINTS *)&mp1).y;
     295        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     296        if(win32wnd->MsgButton(BUTTON_RIGHTDOWN, point.x, point.y)) {
    292297                goto RunDefWndProc;
    293298        }
    294299        break;
    295300    case WM_BUTTON2UP:
    296         if(win32wnd->MsgButton(BUTTON_RIGHTUP, (*(POINTS *)&mp1).x,MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     301        point.x = (*(POINTS *)&mp1).x;
     302        point.y = (*(POINTS *)&mp1).y;
     303        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     304        if(win32wnd->MsgButton(BUTTON_RIGHTUP, point.x, point.y)) {
    297305                goto RunDefWndProc;
    298306        }
    299307        break;
    300308    case WM_BUTTON2DBLCLK:
    301         if(win32wnd->MsgButton(BUTTON_RIGHTDBLCLICK, (*(POINTS *)&mp1).x,MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     309        point.x = (*(POINTS *)&mp1).x;
     310        point.y = (*(POINTS *)&mp1).y;
     311        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     312        if(win32wnd->MsgButton(BUTTON_RIGHTDBLCLICK, point.x, point.y)) {
    302313                goto RunDefWndProc;
    303314        }
    304315        break;
    305316    case WM_BUTTON3DOWN:
    306         if(win32wnd->MsgButton(BUTTON_MIDDLEDOWN, (*(POINTS *)&mp1).x, MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     317        point.x = (*(POINTS *)&mp1).x;
     318        point.y = (*(POINTS *)&mp1).y;
     319        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     320        if(win32wnd->MsgButton(BUTTON_MIDDLEDOWN, point.x, point.y)) {
    307321                goto RunDefWndProc;
    308322        }
    309323        break;
    310324    case WM_BUTTON3UP:
    311         if(win32wnd->MsgButton(BUTTON_MIDDLEUP, (*(POINTS *)&mp1).x,MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     325        point.x = (*(POINTS *)&mp1).x;
     326        point.y = (*(POINTS *)&mp1).y;
     327        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     328        if(win32wnd->MsgButton(BUTTON_MIDDLEUP, point.x, point.y)) {
    312329                goto RunDefWndProc;
    313330        }
    314331        break;
    315332    case WM_BUTTON3DBLCLK:
    316         if(win32wnd->MsgButton(BUTTON_MIDDLEDBLCLICK, (*(POINTS *)&mp1).x,MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     333        point.x = (*(POINTS *)&mp1).x;
     334        point.y = (*(POINTS *)&mp1).y;
     335        MapOS2ToWin32Point(OSLIB_HWND_DESKTOP, hwnd, &point);
     336        if(win32wnd->MsgButton(BUTTON_MIDDLEDBLCLICK, point.x, point.y)) {
    317337                goto RunDefWndProc;
    318338        }
     
    344364            keystate |= WMMOVE_CTRL;
    345365
    346         if(!win32wnd->MsgMouseMove(keystate, (*(POINTS *)&mp1).x, MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     366        //OS/2 Window coordinates -> Win32 Window coordinates
     367        if(!win32wnd->MsgMouseMove(keystate, SHORT1FROMMP(mp1), MapOS2ToWin32Y(win32wnd, SHORT2FROMMP(mp1)))) {
    347368                goto RunDefWndProc;
    348369        }
     
    398419
    399420    case WM_HITTEST:
    400         if(win32wnd->MsgHitTest((*(POINTS *)&mp1).x, MapOS2ToWin32Y(hwnd, (*(POINTS *)&mp1).y))) {
     421        if(win32wnd->MsgHitTest((*(POINTS *)&mp1).x, MapOS2ToWin32Y(OSLIB_HWND_DESKTOP, hwnd, (*(POINTS *)&mp1).y))) {
    401422                goto RunDefWndProc;
    402423        }
Note: See TracChangeset for help on using the changeset viewer.