--- np2/win9x/subwind.cpp 2004/03/26 06:47:11 1.4 +++ np2/win9x/subwind.cpp 2004/04/07 13:15:40 1.6 @@ -437,7 +437,7 @@ static const INITBL np2skini[] = { {"WindposY", INITYPE_SINT32, &skbdcfg.posy, 0}, {"windtype", INITYPE_BOOL, &skbdcfg.type, 0}}; -static void skpalcnv(CMNPAL *dst, RGB32 *src, UINT pals, UINT bpp) { +static void skpalcnv(CMNPAL *dst, const RGB32 *src, UINT pals, UINT bpp) { UINT i; @@ -468,27 +468,32 @@ static void skpalcnv(CMNPAL *dst, RGB32 } } -static void skpaintmsg(HWND hWnd) { +static void skdrawkeys(HWND hWnd, BOOL redraw) { - HDC hdc; - PAINTSTRUCT ps; RECT rect; RECT draw; CMNVRAM *vram; - TRACEOUT(("skpaintmsg")); GetClientRect(hWnd, &rect); draw.left = 0; draw.top = 0; draw.right = min(skbdwin.width, rect.right - rect.left); draw.bottom = min(skbdwin.height, rect.bottom - rect.top); - hdc = BeginPaint(hWnd, &ps); vram = dd2_bsurflock(skbdwin.dd2hdl); if (vram) { - softkbd_paint(vram, skpalcnv); + softkbd_paint(vram, skpalcnv, redraw); dd2_bsurfunlock(skbdwin.dd2hdl); dd2_blt(skbdwin.dd2hdl, NULL, &draw); } +} + +static void skpaintmsg(HWND hWnd) { + + HDC hdc; + PAINTSTRUCT ps; + + hdc = BeginPaint(hWnd, &ps); + skdrawkeys(hWnd, TRUE); EndPaint(hWnd, &ps); } @@ -662,6 +667,13 @@ HWND skbdwin_gethwnd(void) { return(skbdwin.hwnd); } +void skbdwin_process(void) { + + if ((skbdwin.hwnd) && (softkbd_process())) { + skdrawkeys(skbdwin.hwnd, FALSE); + } +} + void skbdwin_readini(void) { char path[MAX_PATH];