Ignore:
Timestamp:
May 15, 2001, 4:31:40 PM (24 years ago)
Author:
sandervl
Message:

SetFocus fix

File:
1 edited

Legend:

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

    r5698 r5713  
    1 /* $Id: pmwindow.cpp,v 1.129 2001-05-12 08:25:56 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.130 2001-05-15 14:31:39 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    125125        (PFNWP)Win32FrameWindowProc,       /* Address of window procedure  */
    126126        CS_FRAME,
    127         FrameClassInfo.cbWindowData+NROF_WIN32WNDBYTES))
     127        FrameClassInfo.cbWindowData))
    128128    {
    129129        dprintf(("WinRegisterClass Win32BaseWindow failed %x", WinGetLastError(hab)));
     
    145145    DevCloseDC(hdc);
    146146
    147     dprintf(("InitPM: Desktop (%d,%d)", ScreenWidth, ScreenHeight));
     147    dprintf(("InitPM: Desktop (%d,%d) bpp %d", ScreenWidth, ScreenHeight, ScreenBitsPerPel));
    148148    return TRUE;
    149149} /* End of main */
     
    310310        //must delay this function call
    311311        //mp1 = win32 window handle
    312         //mp2 = activate flag
    313         dprintf(("USER32: Delayed SetFocus %x %x call!", teb->o.odin.hwndFocus, mp1));
     312        //mp2 = top parent if activation required
     313        dprintf(("USER32: Delayed SetFocus %x %x %x call!", teb->o.odin.hwndFocus, mp1, mp2));
    314314        if(teb->o.odin.hwndFocus) {
    315315            win32wnd = Win32BaseWindow::GetWindowFromHandle(teb->o.odin.hwndFocus);
    316316            if(win32wnd) {
    317                  WinFocusChange(HWND_DESKTOP, win32wnd->getOS2WindowHandle(), (mp2) ? FC_NOLOSEACTIVE : 0);
     317                 if(mp2) {
     318                    SetActiveWindow((HWND)mp2);
     319                 }
     320                 if(!IsWindow(win32wnd->getWindowHandle())) break;       //abort if window destroyed
     321                 WinFocusChange(HWND_DESKTOP, win32wnd->getOS2WindowHandle(), FC_NOSETACTIVE);
    318322            }
    319323            else DebugInt3();
     
    578582    {
    579583        //WM_CREATE handled during client window creation
     584        dprintf(("PMFRAME: WM_CREATE %x"));
    580585        goto RunDefFrameWndProc;
    581586    }
     
    584589    {
    585590      RECTL rectl;
    586 
    587591
    588592        HPS hps = WinBeginPaint(hwnd, NULL, &rectl);
     
    13501354RunDefWndProc:
    13511355    RestoreOS2TIB();
    1352     //calling WinDefWindowProc here break Opera hotlist window (WM_ADJUSTWINDOWPOS)
     1356    //calling WinDefWindowProc here breaks Opera hotlist window (WM_ADJUSTWINDOWPOS)
    13531357//    return pfnFrameWndProc(hwnd, msg, mp1, mp2);
    13541358    return WinDefWindowProc( hwnd, msg, mp1, mp2 );
Note: See TracChangeset for help on using the changeset viewer.