- Timestamp:
- May 12, 2000, 8:09:42 PM (25 years ago)
- Location:
- trunk/src/user32
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/HOOK.CPP
r3207 r3525 1 /* $Id: HOOK.CPP,v 1.1 3 2000-03-23 19:24:25sandervl Exp $ */1 /* $Id: HOOK.CPP,v 1.14 2000-05-12 18:09:39 sandervl Exp $ */ 2 2 3 3 /* … … 333 333 HOOKDATA **prevHook; 334 334 THDB *thdb; 335 VMutex *hookMutex;336 335 337 336 dprintf(("Removing hook %08x\n", data)); … … 358 357 return FALSE; 359 358 } 360 hookMutex = &threadHookMutex; 361 hookMutex->enter(); 359 threadHookMutex.enter(); 362 360 prevHook = (HOOKDATA **)&thdb->hooks[data->id - WH_MINHOOK]; 363 361 } 364 362 else { 365 hookMutex = &systemHookMutex; 366 hookMutex->enter(); 363 systemHookMutex.enter(VMUTEX_WAIT_FOREVER, &hGlobalHookMutex); 367 364 prevHook = (HOOKDATA **)&HOOK_systemHooks[data->id - WH_MINHOOK]; 368 365 } … … 371 368 372 369 if (!prevHook) { 373 hookMutex->leave(); 370 if (data->ownerThread) { 371 threadHookMutex.leave(); 372 } 373 else systemHookMutex.leave(&hGlobalHookMutex); 374 374 375 return FALSE; 375 376 } 376 377 *prevHook = (HOOKDATA *)data->next; 377 hookMutex->leave(); 378 379 if (data->ownerThread) { 380 threadHookMutex.leave(); 381 } 382 else systemHookMutex.leave(&hGlobalHookMutex); 378 383 379 384 HeapFree(GetProcessHeap(), 0, (LPVOID)data ); -
trunk/src/user32/dc.cpp
r3489 r3525 1 /* $Id: dc.cpp,v 1.5 6 2000-05-03 20:59:41 achimhaExp $ */1 /* $Id: dc.cpp,v 1.57 2000-05-12 18:09:39 sandervl Exp $ */ 2 2 3 3 /* … … 1126 1126 { 1127 1127 //TODO: SvL: pingpong.exe doesn't have RDW_NOERASE, but doesn't want WM_ERASEBKGND msgs 1128 if (redraw & RDW_ERASE_W) 1129 wnd->setEraseBkgnd (TRUE); 1128 if (redraw & RDW_ERASE_W) { 1129 wnd->setEraseBkgnd(TRUE); 1130 } 1130 1131 1131 1132 if (!pRect && !hrgn) … … 1212 1213 BOOL result; 1213 1214 1215 if(pRect) { 1216 dprintf(("InvalidateRect %x (%d,%d)(%d,%d) erase=%d", hwnd, pRect->left, pRect->top, pRect->right, pRect->bottom, erase)); 1217 } 1218 else dprintf(("InvalidateRect %x NULL erase=%d", hwnd, erase)); 1214 1219 result = RedrawWindow (hwnd, pRect, NULLHANDLE, 1215 1220 RDW_ALLCHILDREN_W | RDW_INVALIDATE_W | … … 1224 1229 BOOL result; 1225 1230 1231 dprintf(("InvalidateRgn %x %x erase=%d", hwnd, hrgn, erase)); 1226 1232 result = RedrawWindow (hwnd, NULL, hrgn, 1227 1233 RDW_ALLCHILDREN_W | RDW_INVALIDATE_W | -
trunk/src/user32/oslibmsg.cpp
r3373 r3525 1 /* $Id: oslibmsg.cpp,v 1.3 2 2000-04-13 18:50:44sandervl Exp $ */1 /* $Id: oslibmsg.cpp,v 1.33 2000-05-12 18:09:40 sandervl Exp $ */ 2 2 /* 3 3 * Window message translation functions for OS/2 … … 99 99 #define MAX_MSGTRANSTAB (sizeof(MsgTransTab)/sizeof(MsgTransTab[0])) 100 100 101 QMSG *MsgThreadPtr = 0;102 103 101 LRESULT WIN32API SendMessageA(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); 104 102 105 //******************************************************************************106 //******************************************************************************107 BOOL OSLibInitMsgQueue()108 {109 if(DosAllocThreadLocalMemory(sizeof(QMSG)/sizeof(ULONG), (PULONG *)&MsgThreadPtr) != 0)110 {111 dprintf(("OSLibInitMsgQueue: local thread memory alloc failed!!"));112 DebugInt3();113 return FALSE;114 }115 return TRUE;116 }117 103 //****************************************************************************** 118 104 //****************************************************************************** … … 176 162 // WinToOS2MsgTranslate(msg, &qmsg, isUnicode); 177 163 178 if(msg->time == MsgThreadPtr->time || msg->hwnd == 0) { 179 memcpy(&os2msg, MsgThreadPtr, sizeof(QMSG)); 180 MsgThreadPtr->time = -1; 164 if(!memcmp(msg, &thdb->winmsg, sizeof(MSG)) || msg->hwnd == 0) { 165 memcpy(&os2msg, &thdb->os2msg, sizeof(QMSG)); 166 thdb->os2msg.time = -1; 167 thdb->winmsg.time = -1; 181 168 if(msg->hwnd) { 182 169 thdb->nrOfMsgs = 1; … … 185 172 } 186 173 if(os2msg.hwnd || os2msg.msg == WM_QUIT) { 187 memset(MsgThreadPtr, 0, sizeof(*MsgThreadPtr)); 174 memset(&thdb->os2msg, 0, sizeof(thdb->os2msg)); 175 memset(&thdb->winmsg, 0, sizeof(thdb->winmsg)); 188 176 return (LONG)WinDispatchMsg(thdb->hab, &os2msg); 189 177 } … … 235 223 thdb->fTranslated = FALSE; 236 224 memcpy(pMsg, &thdb->msgWCHAR, sizeof(MSG)); 237 MsgThreadPtr->msg = 0;238 MsgThreadPtr->hwnd = 0;225 thdb->os2msg.msg = 0; 226 thdb->os2msg.hwnd = 0; 239 227 return (pMsg->message != WINWM_QUIT); 240 228 } … … 261 249 262 250 OS2ToWinMsgTranslate((PVOID)thdb, &os2msg, pMsg, isUnicode, MSG_REMOVE); 263 memcpy(MsgThreadPtr, &os2msg, sizeof(QMSG)); 251 memcpy(&thdb->os2msg, &os2msg, sizeof(QMSG)); 252 memcpy(&thdb->winmsg, pMsg, sizeof(MSG)); 264 253 265 254 if(pMsg->message <= WINWM_KEYLAST && pMsg->message >= WINWM_KEYDOWN) … … 317 306 if(fRemove & PM_REMOVE_W) { 318 307 thdb->fTranslated = FALSE; 319 MsgThreadPtr->msg = 0;320 MsgThreadPtr->hwnd = 0;308 thdb->os2msg.msg = 0; 309 thdb->os2msg.hwnd = 0; 321 310 } 322 311 memcpy(pMsg, &thdb->msgWCHAR, sizeof(MSG)); … … 343 332 //TODO: This is not safe! There's no guarantee this message will be dispatched and it might overwrite a previous message 344 333 if(fRemove & PM_REMOVE_W) { 345 memcpy(MsgThreadPtr, &os2msg, sizeof(QMSG)); 334 memcpy(&thdb->os2msg, &os2msg, sizeof(QMSG)); 335 memcpy(&thdb->winmsg, pMsg, sizeof(MSG)); 346 336 } 347 337 -
trunk/src/user32/oslibmsg.h
r2469 r3525 1 /* $Id: oslibmsg.h,v 1.1 2 2000-01-18 20:08:11sandervl Exp $ */1 /* $Id: oslibmsg.h,v 1.13 2000-05-12 18:09:40 sandervl Exp $ */ 2 2 /* 3 3 * Window message translation functions for OS/2 … … 21 21 BOOL OS2ToWinMsgTranslate(void *pThdb, QMSG *os2Msg, MSG *winMsg, BOOL isUnicode, BOOL fMsgRemoved); 22 22 void WinToOS2MsgTranslate(MSG *winMsg, QMSG *os2Msg, BOOL isUnicode); 23 24 extern QMSG *MsgThreadPtr;25 23 26 24 #endif … … 35 33 36 34 ULONG OSLibWinQueryMsgTime(); 37 BOOL OSLibInitMsgQueue();38 35 BOOL OSLibWinWaitMessage(); 39 36 BOOL OSLibWinInSendMessage(); -
trunk/src/user32/oslibmsgtranslate.cpp
r3482 r3525 1 /* $Id: oslibmsgtranslate.cpp,v 1. 29 2000-05-02 20:50:49sandervl Exp $ */1 /* $Id: oslibmsgtranslate.cpp,v 1.30 2000-05-12 18:09:40 sandervl Exp $ */ 2 2 /* 3 3 * Window message translation functions for OS/2 … … 865 865 //NOTE: These actually need to be posted so that the next message retrieved by GetMessage contains 866 866 // the newly generated WM_CHAR message. 867 if(!thdb->fTranslated && MsgThreadPtr->msg == WM_CHAR && !((SHORT1FROMMP(MsgThreadPtr->mp1) & KC_KEYUP) == KC_KEYUP))867 if(!thdb->fTranslated && thdb->os2msg.msg == WM_CHAR && !((SHORT1FROMMP(thdb->os2msg.mp1) & KC_KEYUP) == KC_KEYUP)) 868 868 {//TranslatedMessage was called before DispatchMessage, so queue WM_CHAR message 869 ULONG fl = SHORT1FROMMP( MsgThreadPtr->mp1);869 ULONG fl = SHORT1FROMMP(thdb->os2msg.mp1); 870 870 MSG extramsg; 871 871 872 872 memcpy(&extramsg, msg, sizeof(MSG)); 873 extramsg.wParam = SHORT1FROMMP( MsgThreadPtr->mp2);873 extramsg.wParam = SHORT1FROMMP(thdb->os2msg.mp2); 874 874 extramsg.lParam = 0; 875 875 … … 881 881 if(msg->wParam) 882 882 extramsg.wParam = msg->wParam; 883 else extramsg.wParam = SHORT2FROMMP( MsgThreadPtr->mp2);883 else extramsg.wParam = SHORT2FROMMP(thdb->os2msg.mp2); 884 884 } 885 885 -
trunk/src/user32/pmframe.cpp
r3462 r3525 1 /* $Id: pmframe.cpp,v 1.5 2 2000-04-29 18:28:38sandervl Exp $ */1 /* $Id: pmframe.cpp,v 1.53 2000-05-12 18:09:41 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Frame Managment Code for OS/2 … … 229 229 { 230 230 dprintf(("PMFRAME: WM_PAINT")); 231 if (win32wnd->getStyle() & WS_MINIMIZE_W) 232 goto RunDefFrameProc; 233 if (win32wnd->IsWindowCreated()) 234 win32wnd->MsgNCPaint(); 231 if(win32wnd->getStyle() & WS_MINIMIZE_W) 232 goto RunDefFrameProc; 233 if(win32wnd->IsWindowCreated()) 234 win32wnd->MsgNCPaint(); 235 235 236 goto RunDefWndProc; 236 237 } … … 444 445 445 446 case WM_ERASEBACKGROUND: 446 break; 447 { 448 dprintf(("PMFRAME: WM_ERASEBACKGROUND %x", win32wnd->getWindowHandle())); 449 RestoreOS2TIB(); 450 return (MRESULT)FALSE; 451 } 447 452 448 453 case WM_CALCVALIDRECTS: -
trunk/src/user32/pmwindow.cpp
r3388 r3525 1 /* $Id: pmwindow.cpp,v 1. 89 2000-04-15 15:11:13sandervl Exp $ */1 /* $Id: pmwindow.cpp,v 1.90 2000-05-12 18:09:41 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 140 140 141 141 dprintf(("InitPM: Desktop (%d,%d)", ScreenWidth, ScreenHeight)); 142 return OSLibInitMsgQueue();142 return TRUE; 143 143 } /* End of main */ 144 144 //****************************************************************************** … … 439 439 440 440 case WM_PAINT: 441 { 442 // RECTL rectl; 443 441 444 dprintf(("OS2: WM_PAINT")); 442 445 win32wnd->DispatchMsgA(pWinMsg); 443 goto RunDefWndProc; 446 //SvL: Not calling the default window procedure causes all sorts of 447 // strange problems (redraw & hanging app) 448 // WinQueryUpdateRect(hwnd, &rectl); 449 // if(rectl.xLeft == 0 && rectl.yTop == 0 && rectl.xRight == 0 && rectl.yBottom == 0) { 450 // RestoreOS2TIB(); 451 // return (MRESULT)FALSE; 452 // } 453 // dprintf(("Update rectangle (%d,%d)(%d,%d) not empty, msg %x", rectl.xLeft, rectl.yTop, rectl.xRight, rectl.yBottom, pWinMsg->message)); 454 goto RunDefWndProc; 455 } 444 456 445 457 case WM_CONTEXTMENU: -
trunk/src/user32/syscolor.cpp
r2873 r3525 1 /* $Id: syscolor.cpp,v 1.2 0 2000-02-23 17:05:16 cbratschiExp $ */1 /* $Id: syscolor.cpp,v 1.21 2000-05-12 18:09:41 sandervl Exp $ */ 2 2 3 3 /* … … 229 229 } 230 230 231 return SetSysColors(nChanges, lpSysColor, lpColorValues); 231 //SvL: ??? 232 //////// return SetSysColors(nChanges, lpSysColor, lpColorValues); 232 233 233 234 /* Send WM_SYSCOLORCHANGE message to all windows */ -
trunk/src/user32/win32wbase.cpp
r3513 r3525 1 /* $Id: win32wbase.cpp,v 1.18 6 2000-05-10 13:14:43sandervl Exp $ */1 /* $Id: win32wbase.cpp,v 1.187 2000-05-12 18:09:42 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 … … 1056 1056 RECT client = rectClient; 1057 1057 1058 //// mapWin32Rect(getParent() ? getParent()->getOS2WindowHandle():OSLIB_HWND_DESKTOP,OS2HwndFrame,&client);1059 1058 if ((rect.left >= client.left) && (rect.left < client.right) && 1060 1059 (rect.right >= client.left) && (rect.right < client.right) &&
Note:
See TracChangeset
for help on using the changeset viewer.