Changeset 1522 for trunk/src/user32


Ignore:
Timestamp:
Oct 30, 1999, 5:16:58 PM (26 years ago)
Author:
dengert
Message:

fix repaints for transparent windows

Location:
trunk/src/user32
Files:
3 edited

Legend:

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

    r1511 r1522  
    1 /* $Id: oslibwin.cpp,v 1.38 1999-10-29 16:06:55 cbratschi Exp $ */
     1/* $Id: oslibwin.cpp,v 1.39 1999-10-30 15:16:58 dengert Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    6969  ULONG dwClientStyle;
    7070
     71#if 0
    7172//  if(dwFrameStyle || hwndParent == HWND_DESKTOP) {
    7273        dwClientStyle = dwWinStyle & ~(WS_TABSTOP | WS_GROUP | WS_CLIPSIBLINGS);
     
    8990        dprintf(("OSLibWinCreateWindow: (FRAME) WinCreateStdWindow failed (%x)", WinGetLastError(GetThreadHAB())));
    9091        return 0;
     92#else
     93  BOOL TopLevel = hwndParent == HWND_DESKTOP;
     94  FRAMECDATA FCData = {sizeof (FRAMECDATA), 0, 0, 0};
     95
     96  dwClientStyle = dwWinStyle & ~(WS_TABSTOP | WS_GROUP | WS_CLIPSIBLINGS);
     97
     98  dwFrameStyle |= FCF_NOBYTEALIGN;
     99  if (hwndParent == HWND_DESKTOP && dwFrameStyle & FCF_TITLEBAR) {
     100    dwFrameStyle |= FCF_TASKLIST | FCF_NOMOVEWITHOWNER;
     101  }
     102
     103  dwWinStyle &= ~(WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
     104  FCData.flCreateFlags = dwFrameStyle;
     105
     106  *hwndFrame = WinCreateWindow (hwndParent,
     107                                TopLevel ? WC_FRAME : WIN32_INNERFRAME,
     108                                pszName, dwWinStyle, 0, 0, 50, 30,
     109                                hwndParent, HWND_TOP, id, &FCData, NULL);
     110  if (*hwndFrame) {
     111    hwndClient = WinCreateWindow (*hwndFrame, WIN32_STDCLASS,
     112                                  NULL, dwClientStyle, 0, 0, 0, 0,
     113                                  *hwndFrame, HWND_TOP, FID_CLIENT, NULL, NULL);
     114    if (hwndClient != NULLHANDLE)
     115      WinSendMsg (*hwndFrame, WM_UPDATEFRAME, 0, 0);
     116    return hwndClient;
     117  }
     118  dprintf(("OSLibWinCreateWindow: (FRAME) WinCreateStdWindow failed (%x)", WinGetLastError(GetThreadHAB())));
     119  return 0;
     120#endif
     121
    91122#if 0
    92123  }
  • trunk/src/user32/pmwindow.cpp

    r1504 r1522  
    1 /* $Id: pmwindow.cpp,v 1.47 1999-10-28 22:41:01 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.48 1999-10-30 15:16:57 dengert Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    117117BOOL InitPM()
    118118{
     119  CLASSINFO FrameClassInfo;
     120
    119121  hab = WinInitialize(0);
    120122  dprintf(("Winitialize returned %x", hab));
     
    152154     (PFNWP)Win32WindowProc,            /* Address of window procedure  */
    153155//     CS_SIZEREDRAW | CS_HITTEST | CS_MOVENOTIFY,
    154      CS_SIZEREDRAW | CS_HITTEST,
     156     CS_SIZEREDRAW | CS_HITTEST | CS_SYNCPAINT,
    155157     NROF_WIN32WNDBYTES)) {
    156158        dprintf(("WinRegisterClass Win32BaseWindow failed"));
    157159        return(FALSE);
     160   }
     161   if (!WinQueryClassInfo (hab, WC_FRAME, &FrameClassInfo)) {
     162     dprintf (("WinQueryClassInfo WC_FRAME failed"));
     163     return (FALSE);
     164   }
     165   FrameClassInfo.flClassStyle &= ~(CS_PUBLIC | CS_CLIPSIBLINGS);
     166   if (!WinRegisterClass (hab,
     167                          WIN32_INNERFRAME,
     168                          FrameClassInfo.pfnWindowProc,
     169                          FrameClassInfo.flClassStyle,
     170                          FrameClassInfo.cbWindowData)) {
     171     dprintf (("WinRegisterClass Win32InnerFrame failed"));
     172     return (FALSE);
    158173   }
    159174
     
    664679        keyWasPressed = ((SHORT1FROMMP (mp1) & KC_PREVDOWN) == KC_PREVDOWN);
    665680
    666         dprintf(("PM: WM_CHAR: %x %x %d %x", SHORT1FROMMP(mp2), SHORT2FROMMP(mp2), repeatCount, scanCode));
     681        dprintf(("PM: WM_CHAR: %x %x %d %x", SHORT1FROMMP(mp2), SHORT2FROMMP(mp2), repeatCount, scanCode));
    667682        // both WM_KEYUP & WM_KEYDOWN want a virtual key, find the right Win32 virtual key
    668683        // given the OS/2 virtual key and OS/2 character
     
    738753            ULONG keyflags = 0, vkey = 0;
    739754            ULONG fl = SHORT1FROMMP(mp1);
    740             ULONG chCode = SHORT1FROMMP(mp2);
     755            ULONG chCode = SHORT1FROMMP(mp2);
    741756
    742757            if(!(fl & KC_CHAR)) {
    743758//SvL: Test
    744                 break;
     759                break;
    745760//                goto RunDefWndProc;
    746761            }
    747762            if(fl & KC_VIRTUALKEY) {
    748                 if(virtualKey)
    749                         vkey = virtualKey;
    750                 else    vkey = SHORT2FROMMP(mp2);
    751                 chCode = vkey;
     763                if(virtualKey)
     764                        vkey = virtualKey;
     765                else    vkey = SHORT2FROMMP(mp2);
     766                chCode = vkey;
    752767            }
    753768            if(fl & KC_KEYUP) {
     
    786801          ULONG id;
    787802
    788           dprintf(("OS2: WM_TIMER %x %d", hwnd, mp1));
     803          dprintf(("OS2: WM_TIMER %x %d", hwnd, mp1));
    789804          if (TIMER_GetTimerInfo(hwnd,(ULONG)mp1,&sys,&id))
    790805          {
     
    856871                goto RunDefWndProc;
    857872        }
    858         //Apparently there are apps that return 0, but don't do anything during WM_PAINT
     873        //Apparently there are apps that return 0, but don't do anything during WM_PAINT
    859874        goto RunDefWndProc;
    860875
  • trunk/src/user32/pmwindow.h

    r1333 r1522  
    1 /* $Id: pmwindow.h,v 1.2 1999-10-17 12:17:44 cbratschi Exp $ */
     1/* $Id: pmwindow.h,v 1.3 1999-10-30 15:16:57 dengert Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    99#define __PMWINDOW_H__
    1010
    11 #define WIN32_STDCLASS  "Win32WindowClass"
     11#define WIN32_STDCLASS   "Win32WindowClass"
     12#define WIN32_INNERFRAME "Win32InnerFrameClass"
    1213
    1314BOOL InitPM();
Note: See TracChangeset for help on using the changeset viewer.