Ignore:
Timestamp:
Sep 17, 1999, 8:49:53 PM (26 years ago)
Author:
dengert
Message:

window focus management fixed

File:
1 edited

Legend:

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

    r962 r963  
    1 /* $Id: window.cpp,v 1.2 1999-09-16 18:00:43 dengert Exp $ */
     1/* $Id: window.cpp,v 1.3 1999-09-17 18:49:53 dengert Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    456456//******************************************************************************
    457457//******************************************************************************
    458 HWND WIN32API SetFocus( HWND hwnd)
    459 {
    460  HWND lastFocus;
    461 
    462     dprintf(("USER32:  SetFocus\n"));
    463 
    464     lastFocus = GetFocus();
    465     hwnd = Win32BaseWindow::Win32ToOS2Handle(hwnd);
    466     return (OSLibWinSetFocus(OSLIB_HWND_DESKTOP,hwnd)) ? lastFocus:0;
     458HWND WIN32API SetFocus (HWND hwnd)
     459{
     460    HWND lastFocus, lastFocus_W, hwnd_O;
     461    BOOL activate;
     462
     463    hwnd_O    = Win32BaseWindow::Win32ToOS2Handle (hwnd);
     464    lastFocus = OSLibWinQueryFocus (OSLIB_HWND_DESKTOP);
     465    activate  = ((hwnd_O == lastFocus) || OSLibWinIsChild (lastFocus, hwnd_O));
     466    lastFocus_W = Win32BaseWindow::OS2ToWin32Handle (lastFocus);
     467
     468    dprintf(("USER32:  SetFocus %x (%x) -> %x (%x)\n", lastFocus_W, lastFocus, hwnd, hwnd_O));
     469
     470    return (OSLibWinSetFocus (OSLIB_HWND_DESKTOP, hwnd_O, activate)) ? lastFocus_W : 0;
    467471}
    468472//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.