Ignore:
Timestamp:
Jul 14, 2001, 11:21:46 AM (24 years ago)
Author:
sandervl
Message:

Support full window drag for Odin windows

File:
1 edited

Legend:

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

    r6254 r6328  
    1 /* $Id: pmwindow.cpp,v 1.139 2001-07-08 15:51:42 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.140 2001-07-14 09:21:43 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    13541354
    13551355    case WM_TRACKFRAME:
     1356        dprintf(("PMFRAME: WM_TRACKFRAME %x %x %x", win32wnd->getWindowHandle(), mp1, mp2));
    13561357        if(fOS2Look) {//sent by titlebar control
    13571358            FrameTrackFrame(win32wnd, TF_MOVE);
     
    13861387//******************************************************************************
    13871388//TODO: Quickly moving a window two times doesn't force a repaint (1st time)
     1389//
     1390//
     1391BOOL (APIENTRY *WinTrackWindow)(HWND hwndTrack, PTRACKINFO pti) = NULL;
     1392//
    13881393//******************************************************************************
    13891394VOID FrameTrackFrame(Win32BaseWindow *win32wnd,DWORD flags)
     
    13941399  HWND      hwndTracking;
    13951400  LONG      parentHeight, parentWidth;
    1396 
     1401  static    BOOL fInit = FALSE;
     1402  APIRET    rc;
     1403  BOOL      ret;
     1404
     1405    if(!fInit) {
     1406        HMODULE hModule;
     1407        char    buf[CCHMAXPATH];
     1408        rc = DosLoadModule(buf, sizeof(buf), "PMMERGE", &hModule);
     1409        rc = DosQueryProcAddr(hModule, 5466, NULL, (PFN *)&WinTrackWindow);
     1410        if(rc) WinTrackWindow = NULL;
     1411        fInit = TRUE;
     1412    }
    13971413    dprintf(("FrameTrackFrame: %x %x", win32wnd->getWindowHandle(), flags));
    13981414    track.cxBorder = 4;
     
    14281444    track.fs = flags;
    14291445
    1430     if(WinTrackRect(hwndTracking, NULL, &track) )
    1431     {
     1446    BOOL fDynamicDrag = WinQuerySysValue(HWND_DESKTOP, SVOS_DYNAMICDRAG);
     1447
     1448    SEL sel = RestoreOS2FS();
     1449    if(fDynamicDrag && WinTrackWindow) {
     1450         ret = WinTrackWindow(win32wnd->getOS2FrameWindowHandle(), &track);
     1451    }
     1452    else ret = WinTrackRect(hwndTracking, NULL, &track);
     1453    SetFS(sel);
     1454
     1455    if(ret) {
    14321456        /* if successful copy final position back */
    14331457        if(!WinEqualRect(0, &rcl, &track.rclTrack)) {
Note: See TracChangeset for help on using the changeset viewer.