Changeset 239


Ignore:
Timestamp:
Jun 28, 1999, 6:59:43 PM (26 years ago)
Author:
sandervl
Message:

Get/SetWindowLong bugfixes

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/changelog

    r232 r239  
    1  /* $Id: changelog,v 1.31 1999-06-27 21:57:47 sandervl Exp $ */
     1 /* $Id: changelog,v 1.32 1999-06-28 16:58:26 sandervl Exp $ */
     2 99-06-28: Christoph Bratschi
     3        - USER32: AsciiToUnicodeN bugfix (unicode.cpp)
     4
     5 99-06-28: Sander van Leeuwen
     6        - USER32: Get/SetWindowLongA bugfix for dialog controls
     7
    28 99-06-27: Sander van Leeuwen
    39        - USER32: Message handler updates & lots of bugfixes
  • trunk/include/wndproc.h

    r230 r239  
    1 /* $Id: wndproc.h,v 1.5 1999-06-27 21:56:00 sandervl Exp $ */
     1/* $Id: wndproc.h,v 1.6 1999-06-28 16:58:41 sandervl Exp $ */
    22
    33/*
     
    5858                        pCallback = pUserCallback;
    5959                };
     60    WNDPROC_O32 GetOrgOS2Callback() { return pOS2Callback; };
     61
    6062         int    IsWindow() { return fIsWindow; };
    6163
  • trunk/src/user32/setwindow.cpp

    r232 r239  
    1 /* $Id: setwindow.cpp,v 1.5 1999-06-27 21:59:40 sandervl Exp $ */
     1/* $Id: setwindow.cpp,v 1.6 1999-06-28 16:59:43 sandervl Exp $ */
    22
    33/*
     
    3838        else {
    3939                if(!(nIndex == DWL_DLGPROC && wndproc->IsWindow() == TRUE)) {
     40                        if(arg3 == (LONG)wndproc->GetWin32ToOS2Callback()) {
     41                                //restore original dialog control handler
     42                                dprintf(("SetWindowLongA: restore original dialog control handler"));
     43                                rc = (LONG)wndproc->GetWin32Callback();
     44                                wndproc->SetWin32Callback(0);
     45#ifdef DEBUG
     46                                if(wndproc->GetOrgOS2Callback() == NULL) {
     47                                        DebugInt3();
     48                                }
     49#endif
     50                                O32_SetWindowLong(hwnd, nIndex, (LONG)wndproc->GetOrgOS2Callback());
     51                                return rc;
     52                        }
    4053                        rc = (LONG)wndproc->GetWin32Callback();
    4154                        if(rc == 0) {
     
    89102        if(wndproc) {
    90103                if(!(nIndex == DWL_DLGPROC && wndproc->IsWindow() == TRUE))
    91                         return (LONG)wndproc->GetWin32Callback();
     104                {
     105                        rc = (LONG)wndproc->GetWin32Callback();
     106                        if(rc == 0) {
     107                                //window proc that was just created with os/2 callback only
     108                                rc = (LONG) wndproc->GetWin32ToOS2Callback();
     109                        }
     110                        return rc;
     111                }
    92112        }
    93113        else {//probably a dialog box control
Note: See TracChangeset for help on using the changeset viewer.