Ignore:
Timestamp:
May 12, 2001, 10:25:57 AM (24 years ago)
Author:
sandervl
Message:

focus changes

File:
1 edited

Legend:

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

    r5696 r5698  
    1 /* $Id: pmwindow.cpp,v 1.128 2001-05-11 20:40:39 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.129 2001-05-12 08:25:56 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    306306        goto RunDefWndProc;
    307307
    308     case WM_SETFOCUS:
    309     {
    310       HWND hwndFocus = (HWND)mp1;
    311 
    312         dprintf(("OS2: WM_SETFOCUS %x %x (%x) %d", win32wnd->getWindowHandle(), mp1, OS2ToWin32Handle(hwndFocus), mp2));
    313 
     308    case WIN32APP_SETFOCUSMSG:
    314309        //PM doesn't allow SetFocus calls during WM_SETFOCUS message processing;
    315310        //must delay this function call
     311        //mp1 = win32 window handle
     312        //mp2 = activate flag
     313        dprintf(("USER32: Delayed SetFocus %x %x call!", teb->o.odin.hwndFocus, mp1));
     314        if(teb->o.odin.hwndFocus) {
     315            win32wnd = Win32BaseWindow::GetWindowFromHandle(teb->o.odin.hwndFocus);
     316            if(win32wnd) {
     317                 WinFocusChange(HWND_DESKTOP, win32wnd->getOS2WindowHandle(), (mp2) ? FC_NOLOSEACTIVE : 0);
     318            }
     319            else DebugInt3();
     320        }
     321        break;
     322
     323    case WM_SETFOCUS:
     324    {
     325      HWND hwndFocus = (HWND)mp1;
     326
     327        dprintf(("OS2: WM_SETFOCUS %x %x (%x) %d", win32wnd->getWindowHandle(), mp1, OS2ToWin32Handle(hwndFocus), mp2));
     328
     329        //PM doesn't allow SetFocus calls during WM_SETFOCUS message processing;
     330        //must delay this function call
    316331
    317332        teb->o.odin.fWM_SETFOCUS = TRUE;
    318333        teb->o.odin.hwndFocus    = 0;
    319         if(WinQueryWindowULong(hwndFocus, OFFSET_WIN32PM_MAGIC) != WIN32PM_MAGIC) {
     334        if(WinQueryWindowULong(hwndFocus, OFFSET_WIN32PM_MAGIC) != WIN32PM_MAGIC)
     335        {
    320336                //another (non-win32) application's window
    321337                //set to NULL (allowed according to win32 SDK) to avoid problems
     
    565581    }
    566582
    567     case WIN32APP_SETFOCUSMSG:
    568         //PM doesn't allow SetFocus calls during WM_SETFOCUS message processing;
    569         //must delay this function call
    570         //mp1 = win32 window handle
    571         //mp2 = activate flag
    572         dprintf(("USER32: Delayed SetFocus %x %x call!", teb->o.odin.hwndFocus, mp1));
    573         if(teb->o.odin.hwndFocus) {
    574             win32wnd = Win32BaseWindow::GetWindowFromHandle(teb->o.odin.hwndFocus);
    575             teb->o.odin.hwndFocus = 0;
    576             if(win32wnd) {
    577                  WinFocusChange(HWND_DESKTOP, win32wnd->getOS2FrameWindowHandle(), (mp2) ? FC_NOLOSEACTIVE : 0);
    578             }
    579             else DebugInt3();
    580         }
    581         break;
    582 
    583583    case WM_PAINT:
    584584    {
     
    13511351    RestoreOS2TIB();
    13521352    //calling WinDefWindowProc here break Opera hotlist window (WM_ADJUSTWINDOWPOS)
    1353     return pfnFrameWndProc(hwnd, msg, mp1, mp2);
    1354 //    return WinDefWindowProc( hwnd, msg, mp1, mp2 );
     1353//    return pfnFrameWndProc(hwnd, msg, mp1, mp2);
     1354    return WinDefWindowProc( hwnd, msg, mp1, mp2 );
    13551355}
    13561356//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.