Changeset 3501 for trunk/src


Ignore:
Timestamp:
May 9, 2000, 8:56:59 PM (25 years ago)
Author:
sandervl
Message:

lots of changes/fixes

Location:
trunk/src
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/Fileio.cpp

    r3483 r3501  
    1 /* $Id: Fileio.cpp,v 1.30 2000-05-02 20:53:11 sandervl Exp $ */
     1/* $Id: Fileio.cpp,v 1.31 2000-05-09 18:56:07 sandervl Exp $ */
    22
    33/*
     
    281281{
    282282  dprintf(("DeleteFileA %s", lpszFile));
    283   return O32_DeleteFile(lpszFile);
     283//  return O32_DeleteFile(lpszFile);
     284  return TRUE;
    284285}
    285286//******************************************************************************
  • trunk/src/kernel32/environ.cpp

    r2802 r3501  
    1 /* $Id: environ.cpp,v 1.2 2000-02-16 14:25:39 sandervl Exp $ */
     1/* $Id: environ.cpp,v 1.3 2000-05-09 18:56:08 sandervl Exp $ */
    22
    33/*
     
    142142static LPCSTR ENV_FindVariable( LPCSTR env, LPCSTR name, INT len )
    143143{
     144//temporary hack for MS Office 2000 install
     145#if 1
     146    char tempvar[] = "tmp";
     147
     148    if(len == 4 && !lstrncmpiA(name, "TEMP", 4)) {
     149        name = tempvar;
     150        len = 3;
     151    }
     152#endif
     153
    144154    while (*env)
    145155    {
     
    174184    LPCSTR p, var;
    175185
    176     dprintf(("KERNEL32:ExpandEnvironmentStringsA(%08x,%08x,%08x) not implemented\n",
     186    dprintf(("KERNEL32:ExpandEnvironmentStringsA '%s', %08x, %08x",
    177187              src, dst, count
    178188              ));
     
    230240        *dst = '\0';
    231241    }
     242    dprintf(("KERNEL32:ExpandEnvironmentStringsA returned %s %d",
     243              dst, total_size));
    232244    return total_size;
    233245}
  • trunk/src/kernel32/hmopen32.cpp

    r3259 r3501  
    1 /* $Id: hmopen32.cpp,v 1.20 2000-03-28 17:11:49 sandervl Exp $ */
     1/* $Id: hmopen32.cpp,v 1.21 2000-05-09 18:56:08 sandervl Exp $ */
    22
    33/*
     
    581581
    582582#if 1
     583  DWORD ret;
     584
    583585  if(lpDistanceToMoveHigh)
    584586    *lpDistanceToMoveHigh = 0;
    585587
    586   return O32_SetFilePointer(pHMHandleData->hHMHandle,
    587                             lDistanceToMove,
    588                             lpDistanceToMoveHigh,
    589                             dwMoveMethod);
     588  ret = O32_SetFilePointer(pHMHandleData->hHMHandle,
     589                           lDistanceToMove,
     590                           lpDistanceToMoveHigh,
     591                           dwMoveMethod);
     592
     593//  if(ret == -1) {
     594//      dprintf(("current position %x (error = %x)", O32_SetFilePointer(pHMHandleData->hHMHandle,0, 0, 1), GetLastError()));
     595//  }
     596  return ret;
    590597#else
    591598
  • trunk/src/kernel32/lang.cpp

    r3483 r3501  
    1 /* $Id: lang.cpp,v 1.18 2000-05-02 20:53:13 sandervl Exp $ */
     1/* $Id: lang.cpp,v 1.19 2000-05-09 18:56:09 sandervl Exp $ */
    22/*
    33 * Win32 language API functions for OS/2
     
    2020#include <winos2def.h>
    2121#include "unicode.h"
     22#include "oslibmisc.h"
    2223
    2324#define DBG_LOCALLOG    DBG_lang
     
    2627ODINDEBUGCHANNEL(KERNEL32-LANG)
    2728
    28 
     29//******************************************************************************
     30//******************************************************************************
     31ULONG GetLanguageId()
     32{
     33 static ULONG defaultLanguage = 0;
     34
     35  if(defaultLanguage == 0) {
     36        switch(OSLibQueryCountry()) {
     37        case CC_USA:
     38                defaultLanguage = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
     39                break;
     40        case CC_CANADA:
     41                defaultLanguage = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
     42                break;
     43        case CC_LATIN_AMERICA:
     44                defaultLanguage = MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH);
     45                break;
     46        case CC_GREECE:
     47                defaultLanguage = MAKELANGID(LANG_GREEK, SUBLANG_DEFAULT);
     48                break;
     49        case CC_NETHERLANDS:
     50                defaultLanguage = MAKELANGID(LANG_DUTCH, SUBLANG_DUTCH);
     51                break;
     52        case CC_BELGIUM:
     53                defaultLanguage = MAKELANGID(LANG_DUTCH, SUBLANG_DUTCH_BELGIAN);
     54                break;
     55        case CC_FRANCE:
     56                defaultLanguage = MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH);
     57                break;
     58        case CC_SPAIN:
     59                defaultLanguage = MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH);
     60                break;
     61        case CC_ITALY:
     62                defaultLanguage = MAKELANGID(LANG_ITALIAN, SUBLANG_ITALIAN);
     63                break;
     64        case CC_SWITZERLAND:
     65                defaultLanguage = MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_SWISS);
     66                break;
     67        case CC_AUSTRIA:
     68                defaultLanguage = MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN);
     69                break;
     70        case CC_UNITED_KINGDOM:
     71                defaultLanguage = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK);
     72                break;
     73        case CC_DENMARK:
     74                defaultLanguage = MAKELANGID(LANG_DANISH, SUBLANG_DEFAULT);
     75                break;
     76        case CC_SWEDEN:
     77                defaultLanguage = MAKELANGID(LANG_SWEDISH, SUBLANG_DEFAULT);
     78                break;
     79        case CC_NORWAY:
     80                defaultLanguage = MAKELANGID(LANG_NORWEGIAN, SUBLANG_DEFAULT);
     81                break;
     82        case CC_WEST_GERMANY:
     83                defaultLanguage = MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN);
     84                break;
     85        case CC_MEXICO:
     86                defaultLanguage = MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MEXICAN);
     87                break;
     88        case CC_BRAZIL:
     89                defaultLanguage = MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN);
     90                break;
     91        case CC_AUSTRALIA:
     92                defaultLanguage = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_AUS);
     93                break;
     94        case CC_NEW_ZEALAND:
     95                defaultLanguage = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_NZ);
     96                break;
     97        case CC_JAPAN:
     98                defaultLanguage = MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT);
     99                break;
     100        case CC_KOREA:
     101                defaultLanguage = MAKELANGID(LANG_KOREAN, SUBLANG_DEFAULT);
     102                break;
     103        case CC_CHINA:
     104                defaultLanguage = MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL);
     105                break;
     106        case CC_TAIWAN:
     107                defaultLanguage = MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL);
     108                break;
     109        case CC_TURKEY:
     110                defaultLanguage = MAKELANGID(LANG_TURKISH, SUBLANG_DEFAULT);
     111                break;
     112        case CC_PORTUGAL:
     113                defaultLanguage = MAKELANGID(LANG_PORTUGUESE, SUBLANG_DEFAULT);
     114                break;
     115        case CC_LUXEMBOURG:
     116                defaultLanguage = MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_LUXEMBOURG);
     117                break;
     118        case CC_ICELAND:
     119                defaultLanguage = MAKELANGID(LANG_ICELANDIC, SUBLANG_DEFAULT);
     120                break;
     121        case CC_FINLAND:
     122                defaultLanguage = MAKELANGID(LANG_FINNISH, SUBLANG_DEFAULT);
     123                break;
     124        default:
     125                defaultLanguage = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK);
     126                break;
     127        }
     128  }
     129  return defaultLanguage;
     130}
    29131//******************************************************************************
    30132//******************************************************************************
     
    38140LCID WIN32API GetUserDefaultLCID(void)
    39141{
    40   dprintf(("KERNEL32:  OS2GetUserDefaultLCID: always retuns US English!\n"));
    41   return(0x409);        //US English
     142  dprintf(("KERNEL32:  OS2GetUserDefaultLCID: returns %x", MAKELCID(GetLanguageId(), SORT_DEFAULT)));
     143  return(MAKELCID(GetLanguageId(), SORT_DEFAULT));        //US English
    42144}
    43145//******************************************************************************
     
    45147LCID WIN32API GetSystemDefaultLCID(void)
    46148{
    47   dprintf(("KERNEL32:  OS2GetSystemDefaultLCID: always retuns US English!\n"));
    48   return(0x409);        //US English
     149  dprintf(("KERNEL32:  OS2GetSystemDefaultLCID: returns %x", MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT)));
     150  return(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));        //US English
    49151}
    50152//******************************************************************************
     
    52154LANGID WIN32API GetUserDefaultLangID()
    53155{
    54   dprintf(("KERNEL32:  OS2GetUserDefaultLangID, always returns US English\n"));
    55   return(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
     156  dprintf(("KERNEL32:  OS2GetUserDefaultLangID, returns %x", GetLanguageId()));
     157  return(GetLanguageId());
    56158}
    57159//******************************************************************************
     
    59161LANGID WIN32API GetSystemDefaultLangID(void)
    60162{
    61   dprintf(("KERNEL32:  OS2GetSystemDefaultLangID, always returns US English\n"));
     163  dprintf(("KERNEL32:  OS2GetSystemDefaultLangID returns %x", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)));
    62164  return(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
    63165}
     
    9241026  DWORD   result;
    9251027
     1028  dprintf(("KERNEL32: VerLanguageNameA not implemented"));
     1029
    9261030  /*
    9271031   * First, check \System\CurrentControlSet\control\Nls\Locale\<langid>
  • trunk/src/kernel32/misc.cpp

    r3483 r3501  
    1 /* $Id: misc.cpp,v 1.22 2000-05-02 20:53:13 sandervl Exp $ */
     1/* $Id: misc.cpp,v 1.23 2000-05-09 18:56:09 sandervl Exp $ */
    22
    33/*
     
    245245static BOOL fLogging = TRUE;
    246246static int  dwEnableLogging = 1;
     247static int  oldcrtmsghandle = 0;
    247248
    248249//#define CHECK_ODINHEAP
     
    278279                flog = fopen(logname, "w");
    279280        }
     281        oldcrtmsghandle = _set_crt_msg_handle(fileno(flog));
    280282    }
    281283    else
     
    411413void CloseLogFile()
    412414{
     415  if(oldcrtmsghandle)
     416        _set_crt_msg_handle(oldcrtmsghandle);
     417
    413418  fclose(flog);
    414419  flog = 0;
  • trunk/src/kernel32/oslibmisc.cpp

    r2866 r3501  
    1 /* $Id: oslibmisc.cpp,v 1.8 2000-02-23 01:06:59 sandervl Exp $ */
     1/* $Id: oslibmisc.cpp,v 1.9 2000-05-09 18:56:09 sandervl Exp $ */
    22/*
    33 * Misc OS/2 util. procedures
     
    1515#define INCL_DOSPROCESS
    1616#define INCL_DOSSEL
     17#define INCL_DOSNLS        /* National Language Support values */
    1718#include <os2wrap.h>    //Odin32 OS/2 api wrappers
    1819#include <string.h>
     
    242243//******************************************************************************
    243244//******************************************************************************
     245ULONG OSLibQueryCountry()
     246{
     247 COUNTRYCODE  Country    = {0};   /* Country code info (0 = current country) */
     248 COUNTRYINFO  CtryInfo   = {0};   /* Buffer for country-specific information */
     249 ULONG        ulInfoLen  = 0;
     250 APIRET       rc         = NO_ERROR;  /* Return code                         */
     251 
     252    rc = DosQueryCtryInfo(sizeof(CtryInfo), &Country,
     253                          &CtryInfo, &ulInfoLen);
     254 
     255    if (rc != NO_ERROR) {
     256        return -1;
     257    }
     258    return CtryInfo.country;
     259}
     260//******************************************************************************
     261//******************************************************************************
  • trunk/src/kernel32/oslibmisc.h

    r2865 r3501  
    1 /* $Id: oslibmisc.h,v 1.3 2000-02-23 00:57:40 sandervl Exp $ */
     1/* $Id: oslibmisc.h,v 1.4 2000-05-09 18:56:09 sandervl Exp $ */
    22/*
    33 * Misc util. procedures
     
    4242ULONG OSLibWinQueryMsgQueue(ULONG hab);
    4343
     44//#define CC_NONE                        0
     45#define CC_USA                         1
     46#define CC_CANADA                      2
     47#define CC_LATIN_AMERICA               3
     48#define CC_GREECE                     30
     49#define CC_NETHERLANDS                31
     50#define CC_BELGIUM                    32
     51#define CC_FRANCE                     33
     52#define CC_SPAIN                      34
     53#define CC_ITALY                      39
     54#define CC_SWITZERLAND                41
     55#define CC_AUSTRIA                    43
     56#define CC_UNITED_KINGDOM             44
     57#define CC_DENMARK                    45
     58#define CC_SWEDEN                     46
     59#define CC_NORWAY                     47
     60#define CC_WEST_GERMANY               49
     61#define CC_MEXICO                     52
     62#define CC_BRAZIL                     55
     63#define CC_AUSTRALIA                  61
     64#define CC_NEW_ZEALAND                64
     65#define CC_JAPAN                      81
     66#define CC_KOREA                      82
     67#define CC_CHINA                      86
     68#define CC_TAIWAN                     88
     69#define CC_TURKEY                     90
     70#define CC_PORTUGAL                  351
     71#define CC_LUXEMBOURG                352
     72#define CC_ICELAND                   354
     73#define CC_FINLAND                   358
     74
     75ULONG OSLibQueryCountry();
     76
    4477#endif
  • trunk/src/kernel32/winexepeldr.cpp

    r3375 r3501  
    1 /* $Id: winexepeldr.cpp,v 1.8 2000-04-14 22:35:28 sandervl Exp $ */
     1/* $Id: winexepeldr.cpp,v 1.9 2000-05-09 18:56:09 sandervl Exp $ */
    22
    33/*
     
    6767  }
    6868
    69   szFullCmdLine = (char *)malloc(strlen(szFileName) + 1 + strlen(szCmdLine) + 1);
    70   strcpy(szFullCmdLine, szFileName);
     69  //exe length + space + (possibly) 2x'"' + cmd line length + 0 terminator
     70  szFullCmdLine = (char *)malloc(strlen(szFileName) + 3 + strlen(szCmdLine) + 1);
     71  //Enclose executable name in quotes if it (or it's directory) contains spaces
     72  if(strchr(szFileName, ' ') != NULL) {
     73        sprintf(szFullCmdLine, "\"%s\"", szFileName);
     74  }
     75  else  strcpy(szFullCmdLine, szFileName);
    7176  strcat(szFullCmdLine, " ");
    7277  strcat(szFullCmdLine, szCmdLine);
  • trunk/src/kernel32/winimgres.cpp

    r3275 r3501  
    1 /* $Id: winimgres.cpp,v 1.34 2000-03-29 17:17:18 sandervl Exp $ */
     1/* $Id: winimgres.cpp,v 1.35 2000-05-09 18:56:10 sandervl Exp $ */
    22
    33/*
     
    1616 */
    1717#include <os2win.h>
     18#include <winnls.h>
    1819#include <stdio.h>
    1920#include <stdlib.h>
     
    151152  if(*nodeData == 0xFFFFFFFF) {//shouldn't happen!
    152153        dprintf(("ProcessResSubDir: *nodeData == 0xFFFFFFFF!\n"));
     154        DebugInt3();
    153155        return(NULL);
    154156  }
     
    159161  //level 3 (lang) -> get first language?
    160162  if(*nodeData == IDLANG_GETFIRST) {
    161     nrres  = prdType->NumberOfNamedEntries + prdType->NumberOfIdEntries;
    162     fNumId = (prdType->NumberOfNamedEntries == 0);
     163        nrres  = prdType->NumberOfNamedEntries + prdType->NumberOfIdEntries;
     164        fNumId = (prdType->NumberOfNamedEntries == 0);
    163165  }
    164166  else {
    165     fNumId = HIWORD(*nodeData) == 0;
    166 
    167     if(fNumId) {//numeric or string id?
    168         nrres = prdType->NumberOfIdEntries;
    169         prde += prdType->NumberOfNamedEntries;  //skip name entries
    170     }
    171     else    nrres = prdType->NumberOfNamedEntries;
     167        fNumId = HIWORD(*nodeData) == 0;
     168
     169        if(fNumId) {//numeric or string id?
     170                nrres = prdType->NumberOfIdEntries;
     171                prde += prdType->NumberOfNamedEntries;  //skip name entries
     172        }
     173        else    nrres = prdType->NumberOfNamedEntries;
    172174  }
    173175
     
    177179
    178180        if(*nodeData == IDLANG_GETFIRST) {
    179         fFound = TRUE; //always take the first one
    180     }
    181     else
     181                fFound = TRUE; //always take the first one
     182        }
     183        else
    182184        if(!fNumId) {//name or id entry?
    183185            nameOffset = prde->u1.Name;
     
    222224 PIMAGE_RESOURCE_DATA_ENTRY      pData = NULL;
    223225
     226    switch(lang) {
     227    case LOCALE_SYSTEM_DEFAULT:
     228        lang = GetSystemDefaultLangID();
     229        break;   
     230    case LOCALE_USER_DEFAULT:
     231        lang = GetUserDefaultLangID();
     232        break;   
     233    case LOCALE_NEUTRAL:
     234        //TODO: Not correct; should take language associated with current thread
     235        lang = IDLANG_GETFIRST;
     236        break;   
     237    }
     238
    224239    pData = getPEResourceEntry(id, type, lang);
    225240    if(pData == NULL) {
     
    260275    else  type = (ULONG)lpszType;
    261276
     277    switch(lang) {
     278    case LOCALE_SYSTEM_DEFAULT:
     279        lang = GetSystemDefaultLangID();
     280        break;   
     281    case LOCALE_USER_DEFAULT:
     282        lang = GetUserDefaultLangID();
     283        break;   
     284    case LOCALE_NEUTRAL:
     285        //TODO: Not correct; should take language associated with current thread
     286        lang = IDLANG_GETFIRST;
     287        break;   
     288    }
    262289    id = (ULONG)lpszName;
    263290
  • trunk/src/user32/menu.cpp

    r3225 r3501  
    1 /* $Id: menu.cpp,v 1.20 2000-03-24 19:20:33 sandervl Exp $*/
     1/* $Id: menu.cpp,v 1.21 2000-05-09 18:56:56 sandervl Exp $*/
    22/*
    33 * Menu functions
     
    15991599            if (!pTopPopupWnd)
    16001600            {
     1601                DebugInt3();
    16011602                return FALSE;
    16021603            }
     
    16151616                if( !menu->hWnd )
    16161617                {
     1618                    DebugInt3();
    16171619                    return FALSE;
    16181620                }
     
    21832185   {
    21842186        Win32BaseWindow *win32wnd = Win32BaseWindow::GetWindowFromHandle(menu->hWnd);
    2185         if(win32wnd==NULL)
    2186                 DebugInt3();
     2187        if(win32wnd==NULL) {
     2188            //SvL: This happens in Moraff's YourJongg 2.0, return here
     2189            //TODO: Check if this is supposed to happen at all...
     2190            return (HMENU)0;
     2191        }
    21872192
    21882193        ht = win32wnd->HandleNCHitTest(pt);
  • trunk/src/user32/user32.cpp

    r3491 r3501  
    1 /* $Id: user32.cpp,v 1.80 2000-05-03 22:33:36 sandervl Exp $ */
     1/* $Id: user32.cpp,v 1.81 2000-05-09 18:56:57 sandervl Exp $ */
    22
    33/*
     
    122122BOOL WIN32API InflateRect( PRECT lprc, int dx, int  dy)
    123123{
    124     dprintf2(("USER32:  InflateRect\n"));
     124    dprintf2(("USER32: InflateRect (%d,%d)(%d,%d) %d,%d", lprc->left, lprc->top, lprc->right, lprc->bottom, dx, dy));
    125125    if (!lprc)
    126126    {
     
    140140BOOL WIN32API IntersectRect( PRECT lprcDst, const RECT * lprcSrc1, const RECT * lprcSrc2)
    141141{
    142     dprintf2(("USER32:  IntersectRect\n"));
     142    dprintf2(("USER32:  IntersectRect (%d,%d)(%d,%d) (%d,%d)(%d,%d)", lprcSrc1->left, lprcSrc1->top, lprcSrc1->right, lprcSrc1->bottom, lprcSrc2->left, lprcSrc2->top, lprcSrc2->right, lprcSrc2->bottom));
    143143    if (!lprcSrc1 || !lprcSrc2)
    144144    {
    145       SetLastError(ERROR_INVALID_PARAMETER);
    146       return FALSE;
     145        SetLastError(ERROR_INVALID_PARAMETER);
     146        return FALSE;
    147147    }
    148148
     
    182182BOOL WIN32API OffsetRect( PRECT lprc, int x, int  y)
    183183{
    184     dprintf2(("USER32:  OffsetRect\n"));
     184    dprintf2(("USER32: OffsetRect (%d,%d)(%d,%d) %d %d", lprc->left, lprc->top, lprc->right, lprc->bottom, x, y));
    185185    if (!lprc)
    186186    {
    187       SetLastError(ERROR_INVALID_PARAMETER);
    188       return FALSE;
     187        SetLastError(ERROR_INVALID_PARAMETER);
     188        return FALSE;
    189189    }
    190190
     
    200200BOOL WIN32API PtInRect( const RECT *lprc, POINT pt)
    201201{
    202     dprintf2(("USER32:  PtInRect\n"));
     202    dprintf2(("USER32: PtInRect (%d,%d)(%d,%d) (%d,%d)", lprc->left, lprc->top, lprc->right, lprc->bottom, pt.x, pt.y));
    203203    if (!lprc)
    204204    {
  • trunk/src/user32/win32wbase.cpp

    r3493 r3501  
    1 /* $Id: win32wbase.cpp,v 1.184 2000-05-05 11:32:36 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.185 2000-05-09 18:56:58 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    797797ULONG Win32BaseWindow::MsgShow(BOOL fShow)
    798798{
    799     if(fNoSizeMsg) {
     799    if(fNoSizeMsg || fDestroyWindowCalled) {
    800800        return 1;
    801801    }
     
    865865 ULONG rc, procidhwnd = -1, threadidhwnd = 0;
    866866
     867    //SvL: Don't send WM_(NC)ACTIVATE messages when the window is being destroyed
     868    if(fDestroyWindowCalled) {
     869        return 0;
     870    }
    867871
    868872    //According to SDK docs, if app returns FALSE & window is being deactivated,
     
    910914ULONG Win32BaseWindow::MsgSetFocus(HWND hwnd)
    911915{
     916    //SvL: Don't send WM_(NC)ACTIVATE messages when the window is being destroyed
     917    if(fDestroyWindowCalled) {
     918        return 0;
     919    }
     920
    912921    return  SendInternalMessageA(WM_SETFOCUS, hwnd, 0);
    913922}
     
    916925ULONG Win32BaseWindow::MsgKillFocus(HWND hwnd)
    917926{
     927    //SvL: Don't send WM_(NC)ACTIVATE messages when the window is being destroyed
     928    if(fDestroyWindowCalled) {
     929        return 0;
     930    }
    918931    return  SendInternalMessageA(WM_KILLFOCUS, hwnd, 0);
    919932}
     
    20242037{
    20252038 ULONG showstate = 0;
    2026  HWND hWinAfter;
     2039 HWND  hWinAfter;
     2040 BOOL  rc;
    20272041
    20282042    dprintf(("ShowWindow %x %x", getWindowHandle(), nCmdShow));
    20292043
    2030     if (flags & WIN_NEED_SIZE)
    2031     {
    2032         /* should happen only in CreateWindowEx() */
    2033         int wParam = SIZE_RESTORED;
    2034 
    2035         flags &= ~WIN_NEED_SIZE;
    2036         if (dwStyle & WS_MAXIMIZE)
    2037             wParam = SIZE_MAXIMIZED;
    2038         else
    2039         if (dwStyle & WS_MINIMIZE)
    2040             wParam = SIZE_MINIMIZED;
    2041 
    2042         SendInternalMessageA(WM_SIZE, wParam,
    2043                      MAKELONG(rectClient.right-rectClient.left,
    2044                               rectClient.bottom-rectClient.top));
    2045         SendInternalMessageA(WM_MOVE,0,MAKELONG(rectClient.left,rectClient.top));
     2044    if(getWindowHandle() == 0x68000002) {
     2045//      DebugInt3();
    20462046    }
    20472047    switch(nCmdShow)
     
    20892089    else    setStyle(getStyle() & ~WS_VISIBLE);
    20902090
    2091     BOOL rc = OSLibWinShowWindow(OS2HwndFrame, showstate);
     2091    rc = OSLibWinShowWindow(OS2HwndFrame, showstate);
    20922092
    20932093    SendInternalMessageA(WM_SHOWWINDOW, (showstate & SWPOS_SHOW) ? 1 : 0, 0);
     2094
     2095    if (flags & WIN_NEED_SIZE)
     2096    {
     2097        /* should happen only in CreateWindowEx() */
     2098        int wParam = SIZE_RESTORED;
     2099
     2100        flags &= ~WIN_NEED_SIZE;
     2101        if (dwStyle & WS_MAXIMIZE)
     2102            wParam = SIZE_MAXIMIZED;
     2103        else
     2104        if (dwStyle & WS_MINIMIZE)
     2105            wParam = SIZE_MINIMIZED;
     2106
     2107        SendInternalMessageA(WM_SIZE, wParam,
     2108                     MAKELONG(rectClient.right-rectClient.left,
     2109                              rectClient.bottom-rectClient.top));
     2110        SendInternalMessageA(WM_MOVE,0,MAKELONG(rectClient.left,rectClient.top));
     2111    }
    20942112
    20952113    return rc;
     
    22562274BOOL Win32BaseWindow::DestroyWindow()
    22572275{
     2276 HWND hwnd = getWindowHandle();
     2277
     2278    dprintf(("DestroyWindow %x", hwnd));
     2279
    22582280    /* Call hooks */
    22592281    if(HOOK_CallHooksA( WH_CBT, HCBT_DESTROYWND, getWindowHandle(), 0L))
     
    22742296             /* Notify the parent window only */
    22752297             getParent()->SendMessageA(WM_PARENTNOTIFY, MAKEWPARAM(WM_DESTROY, getWindowId()), (LPARAM)getWindowHandle());
    2276              if( !::IsWindow(getWindowHandle()) )
     2298             if(!::IsWindow(hwnd) )
    22772299             {
    22782300                return TRUE;
     
    22812303        else DebugInt3();
    22822304    }
     2305
     2306    /* Hide the window */
     2307    if(IsWindowVisible())
     2308    {
     2309        SetWindowPos(0, 0, 0, 0, 0, SWP_HIDEWINDOW |
     2310                     SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE);
     2311        if(!::IsWindow(hwnd))
     2312        {
     2313                return TRUE;
     2314        }
     2315    }
     2316    dprintf(("DestroyWindow %x -> HIDDEN", hwnd));
     2317
    22832318    fDestroyWindowCalled = TRUE;
    22842319    return OSLibWinDestroyWindow(OS2HwndFrame);
  • trunk/src/user32/window.cpp

    r3493 r3501  
    1 /* $Id: window.cpp,v 1.65 2000-05-05 11:32:38 sandervl Exp $ */
     1/* $Id: window.cpp,v 1.66 2000-05-09 18:56:59 sandervl Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    317317        return 0;
    318318    }
    319     dprintf(("DestroyWindow %x", hwnd));
    320319    return window->DestroyWindow();
    321320}
     
    812811    dprintf(("AdjustWindowRectEx %x %x %d (%d,%d)(%d,%d)\n", style, exStyle, menu, rect->left, rect->top, rect->right, rect->bottom));
    813812
     813    if(style == 0 && menu == FALSE && exStyle == 0) {
     814        return TRUE;    //nothing needs to be changed (VERIFIED in NT 4)
     815    }
    814816    /* Correct the window style */
    815817    if (!(style & (WS_POPUP | WS_CHILD)))  /* Overlapped window */
     
    10261028{
    10271029    dprintf(("FlashWindow %x %d\n", hwnd, fFlash));
    1028     return OSLibWinFlashWindow(Win32BaseWindow::Win32ToOS2Handle(hwnd), fFlash);
     1030//    return OSLibWinFlashWindow(Win32BaseWindow::Win32ToOS2Handle(hwnd), fFlash);
     1031    return 1;
    10291032}
    10301033//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.