Ignore:
Timestamp:
May 24, 2004, 11:02:01 AM (21 years ago)
Author:
sandervl
Message:

KOM: Updates

File:
1 edited

Legend:

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

    r10515 r10607  
    1 /* $Id: pmwindow.cpp,v 1.229 2004-03-12 18:19:50 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.230 2004-05-24 09:01:59 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    6161#include "user32api.h"
    6262#include <kbdhook.h>
     63#include <heapstring.h>
     64
     65#include <os2im.h>
     66#include <im32.h>
    6367
    6468#define DBG_LOCALLOG    DBG_pmwindow
     
    140144#endif
    141145
     146extern "C" ULONG OSLibImSetMsgQueueProperty( ULONG, ULONG );
     147
    142148//******************************************************************************
    143149// Initialize PM; create hab, message queue and register special Win32 window classes
     
    194200    BOOL rc = WinSetCp(hmq, GetDisplayCodepage());
    195201    dprintf(("InitPM: WinSetCP was %sOK", rc ? "" : "not "));
     202
     203    /* IM instace is created per message queue, that is, thread */
     204    if( IsDBCSEnv())
     205        OSLibImSetMsgQueueProperty( hmq, MQP_INSTANCE_PERMQ );
    196206
    197207    //CD polling window class
     
    10061016        break;
    10071017
     1018    case WM_IMEREQUEST:
     1019    case WM_IMECONTROL:
     1020    case WM_IMENOTIFY:
     1021        if( pWinMsg->message )
     1022        {
     1023            win32wnd->DispatchMsgA( pWinMsg );
     1024
     1025            if(( pWinMsg->message = WM_IME_NOTIFY_W ) &&
     1026               ( pWinMsg->wParam == IMN_SETOPENSTATUS_W ))
     1027            {
     1028                MSG m;
     1029
     1030                m.message = WM_IME_NOTIFY_W;
     1031                m.wParam = IMN_SETCONVERSIONMODE_W;
     1032                m.lParam = 0;
     1033
     1034                win32wnd->DispatchMsgA( &m );
     1035            }
     1036        }
     1037        else
     1038            goto RunDefWndProc;
     1039        break;
     1040
    10081041    case DM_DRAGOVER:
    10091042    {
     
    10161049
    10171050        if(fDragDropDisabled) {
    1018                 rc = (MRFROM2SHORT (DOR_NEVERDROP, 0));
     1051            rc = (MRFROM2SHORT (DOR_NEVERDROP, 0));
    10191052            break;
    10201053        }
     
    10221055        //does this window accept dropped files?
    10231056        if(!DragDropAccept(win32wnd->getWindowHandle())) {
    1024                 rc = (MRFROM2SHORT (DOR_NEVERDROP, 0));
     1057            rc = (MRFROM2SHORT (DOR_NEVERDROP, 0));
    10251058            break;
    10261059        }
    10271060
    10281061        if(PMDragValidate(pDragInfo) == FALSE) {
    1029                 rc = (MRFROM2SHORT (DOR_NEVERDROP, 0));
     1062            rc = (MRFROM2SHORT (DOR_NEVERDROP, 0));
    10301063            break;
    10311064        }
     
    22102243        break;
    22112244
     2245    case WM_IMEREQUEST:
     2246    case WM_IMECONTROL:
     2247    case WM_IMENOTIFY:
     2248        if( pWinMsg->message )
     2249        {
     2250            dprintf(("Frame window received IME message"));
     2251            win32wnd->DispatchMsgA( pWinMsg );
     2252
     2253            if(( pWinMsg->message = WM_IME_NOTIFY_W ) &&
     2254               ( pWinMsg->wParam == IMN_SETOPENSTATUS_W ))
     2255            {
     2256                MSG m;
     2257
     2258                m.message = WM_IME_NOTIFY_W;
     2259                m.wParam = IMN_SETCONVERSIONMODE_W;
     2260                m.lParam = 0;
     2261
     2262                win32wnd->DispatchMsgA( &m );
     2263            }
     2264        }
     2265        else
     2266            goto RunDefWndProc;
     2267        break;
     2268
    22122269#ifdef DEBUG
    22132270    case WM_DDE_INITIATE:
     
    23262383// Parameters
    23272384//
    2328 //     HWND hwndOS2             - PM handle of fake window
     2385//     HWND hwndOS2     - PM handle of fake window
    23292386//
    23302387// Returns
    2331 //     NULL                     - Failure
     2388//     NULL         - Failure
    23322389//     else                     - Old PM window procedure
    23332390//
Note: See TracChangeset for help on using the changeset viewer.