Ignore:
Timestamp:
Sep 5, 2000, 9:20:38 PM (25 years ago)
Author:
sandervl
Message:

WM_FOCUSCHANGE fixes + misc fixes

File:
1 edited

Legend:

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

    r4188 r4194  
    1 /* $Id: win32wbase.cpp,v 1.210 2000-09-04 18:23:56 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.211 2000-09-05 19:20:36 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    666666  }
    667667
    668   if (SendInternalMessageA(WM_NCCREATE,0,(LPARAM)cs))
     668  //cs is ascii version of create structure. so use SendInternalMessageA
     669  if(SendInternalMessageA(WM_NCCREATE,0,(LPARAM)cs))
    669670  {
    670671        RECT tmpRect;
     
    705706                SendInternalMessageA(WM_MOVE,0,MAKELONG(rectClient.left,rectClient.top));
    706707            }
    707 
    708708            if( (getStyle() & WS_CHILD) && !(getExStyle() & WS_EX_NOPARENTNOTIFY) )
    709709            {
    710710                /* Notify the parent window only */
    711                 SendInternalMessageA(WM_PARENTNOTIFY, MAKEWPARAM(WM_CREATE, getWindowId()), (LPARAM)getWindowHandle());
     711                if(getParent() && getParent()->IsWindowDestroyed() == FALSE)
     712                {
     713                        getParent()->SendInternalMessageA(WM_PARENTNOTIFY, MAKEWPARAM(WM_CREATE, getWindowId()), (LPARAM)getWindowHandle());
     714                }
    712715                if(!::IsWindow(getWindowHandle()))
    713716                {
     
    30133016 LONG oldval;
    30143017
    3015     dprintf2(("SetWindowLong%c %x %d %x", (fUnicode) ? 'W' : 'A', getWindowHandle(), index, value));
    30163018    switch(index) {
    30173019        case GWL_EXSTYLE:
     
    30193021           STYLESTRUCT ss;
    30203022
    3021                 if(dwExStyle == value)
    3022                     return value;
    3023 
     3023                if(dwExStyle == value) {
     3024                        oldval = value;
     3025                        break;
     3026                }
    30243027                ss.styleOld = dwExStyle;
    30253028                ss.styleNew = value;
     
    30283031                setExStyle(ss.styleNew);
    30293032                SendInternalMessageA(WM_STYLECHANGED,GWL_EXSTYLE,(LPARAM)&ss);
    3030                 return ss.styleOld;
     3033                oldval = ss.styleOld;
     3034                break;
    30313035        }
    30323036        case GWL_STYLE:
     
    30363040                //SvL: TODO: Can you change minimize or maximize status here too?
    30373041
    3038                 if(dwStyle == value)
    3039                     return value;
    3040 
     3042                if(dwStyle == value) {
     3043                        oldval = value;
     3044                        break;
     3045                }
    30413046                value &= ~(WS_CHILD|WS_VISIBLE);      /* Some bits can't be changed this way (WINE) */
    30423047                ss.styleOld = getStyle();
     
    30513056                PrintWindowStyle(ss.styleNew, 0);
    30523057#endif
    3053                 return ss.styleOld;
     3058                oldval = ss.styleOld;
     3059                break;
    30543060        }
    30553061        case GWL_WNDPROC:
     
    30653071                oldval = (LONG)WINPROC_GetProc(win32wndproc, (fUnicode) ? WIN_PROC_32W : WIN_PROC_32A);
    30663072                WINPROC_SetProc((HWINDOWPROC *)&win32wndproc, (WNDPROC)value, type, WIN_PROC_WINDOW);
    3067                 return oldval;
     3073                break;
    30683074        }
    30693075        case GWL_HINSTANCE:
    30703076                oldval = hInstance;
    30713077                hInstance = value;
    3072                 return oldval;
     3078                break;
    30733079
    30743080        case GWL_HWNDPARENT:
    3075                 return SetParent((HWND)value);
     3081                oldval = SetParent((HWND)value);
     3082                break;
    30763083
    30773084        case GWL_ID:
    30783085                oldval = getWindowId();
    30793086                setWindowId(value);
    3080                 return oldval;
     3087                break;
    30813088
    30823089        case GWL_USERDATA:
    30833090                oldval = userData;
    30843091                userData = value;
    3085                 return oldval;
     3092                break;
    30863093
    30873094        default:
     
    30903097                        oldval = userWindowLong[index/4];
    30913098                        userWindowLong[index/4] = value;
    3092                         return oldval;
     3099                        break;
    30933100                }
     3101                dprintf(("WARNING: SetWindowLong%c %x %d %x returned %x INVALID index!", (fUnicode) ? 'W' : 'A', getWindowHandle(), index, value));
    30943102                SetLastError(ERROR_INVALID_PARAMETER);
    30953103                return 0;
    30963104    }
     3105    SetLastError(ERROR_SUCCESS);
     3106    dprintf2(("SetWindowLong%c %x %d %x returned %x", (fUnicode) ? 'W' : 'A', getWindowHandle(), index, value, oldval));
     3107    return oldval;
    30973108}
    30983109//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.