- Return 1 when explorer terminates. This value lets winlogon know that explorer terminated without errors and it doesn't need to restart
svn path=/trunk/; revision=51499
- When terminating an application use 1 as exit code. This is used by Task Manager in windows. It also prevents explorer from restarting in windows
- Disable redrawing the list of processes while the list is updated. Fixes flicker in windows
svn path=/trunk/; revision=51498
Patch by Edijs Kolesnikovics: Write default font, weight and point size when run for the first time. That's what ms notepad does too.
See issue #5305 for more details.
svn path=/trunk/; revision=51497
- UserSetProcessWindowStation: Use PsGetProcessWin32WindowStation and PsSetProcessWindowStation. Close the prevoious window station handle only when the window station was not set by UserSetProcessWindowStation (should be the case for console apps)
svn path=/trunk/; revision=51496
Jeisson Toscano: French update + some Spanish translation updates (with corrections from vicmarcal and me)
See issue #6012 for more details.
svn path=/trunk/; revision=51494
* Use current directory in GetDriveType if no path is given
* Check if path is properly ended
* Remove slash from end when calling NtCrateFile function
* Fixes few kernel32_apitest tests and floppy icon in My Computer if no floppy is inserted
See issue #6148 for more details.
svn path=/trunk/; revision=51485
- Don't use exclusive locks for pens
- Don't try to delete the window update region
- Don't ignore pid in GreIsHandleValid
- Check if handle is valid before deleting it in DC_Cleanup
- Silence a DPRINT
svn path=/trunk/; revision=51475
Rewrite of the GDI handle manager
- The old handle manager used a completely retarded spinlock in combination with KeDelayExecutionThread() for both exclusive
and shared locks. This is probably the most uneffective algorithm possible. It was also duplicating code everywhere and it was a overall mess It
is now replaced with a lock-free reference counter for shared locks and a pushlock for exclusive locks. -> Better performance and scalability.
- Allocate user mode object attributes from the new gdi pool. This way, we don't need any caching, since the pool serves as a cache. Its also
much faster and uses much less memory.
- Allow object allocations of different size, instead of fixed size from a table. This way a single allocation can take care of actual needs.
- Allow allcoating objects without a handle and insert them into the handle table later
- Properly synchronize the process GDIHandleCount. Now gdiview and taskmanager show the correct number of gdi handles.
- Implement a new event tracking system, that is capable of tracking all reverences and locks of objects and pool allocations to help track
possible leaks
- Make sure that all objects of a process are deleted in cleanup
- Make sure all usermode memory allocations are freed, when cleaning up the process pool.
- Make sure that each object type is using the correct type of lock (either shared or exclusive, not a mixture)
- Fix some object / reference leaks
- Lots of inferface improvements
- Use global variables for certain things instead of members in the mapped gdi handle table
- Make IntSysCreateRectpRgn create a region without a handle
- Fix detection od source and mask use in GreStretchBltMask
- Use GDIOBJ_bLockMultipleObjects in NtGdiCombineRegion to avoid possible deadlocks
- Fix NtGdiAbortPath to reset DCPATH_ACTIVE flag in the dc and only bail out on error, instead of always
- Replace DC_AllocateDcAttr and DC_AllocDcAttr with DC_bAllocDcAttr using the new user mode pool
- Remove DCU_SyncDcAttrtoUser and DCU_SynchDcAttrtoUser. Those functions were unused and didn't do anything useful anyway,
- Replace IntGdiSetDCOwnerEx and DC_SetOwnership with GreSetDCOwner, remove unused NoSetBrush parameter
- Replace GDIOBJ_bValidateHandle and IsObjectDead with GreIsHandleValid
- Chage GDIOBJ_bLockMultipleObjects: pass object type, return a BOOL, whether all objects could be locked, cleanup on failure
svn path=/trunk/; revision=51470
-Fix a case when a window is created and we don't have a monitor created yet. (This can happen when we may attempt to use gui on demand)
svn path=/trunk/; revision=51464
- Sync up menu without the Right to Left support. Still missing needed changes for adding it.
- Patches by Alexandre Julliard and Dmitry Timoshkov.
svn path=/trunk/; revision=51461
- Merge 50674 to trunk:
- Allocate memory for the logical pin array
- Use the correct counter variable for logical pin array
- Found by msvc
See issue #6143 for more details.
svn path=/trunk/; revision=51455
[NTOSKRNL.EXE]
- Complemented existing stub routines ObpDeleteSymbolicLinkName() and ObpCreateSymbolicLinkName(). Now when symbolic links are created, they are checked for dos drive mapping and ObSystemDeviceMap is updated accordingly.
- Updates to ObpDeviceMapLock are protected by a guarded mutex (changed from fast mutex by Aleksey Bragin).
- Aleksey Bragin: Fix concurrent access issues in ObDereferenceDeviceMap. The DeviceMap read/write operation must be atomic (within the ObpDeviceMapLock region).
[SUBST.EXE]
- Removed hard coded strings and moved it to resource file.
[WIN32CSR.DLL]
- Added a workaround, when target path end with a trailing '\', the substituted drive fails to parse to the target, this is a bug in the object manager, but working around it in CsrDefineDosDevice() by stripping trailing '\'.
See issue #993 for more details.
svn path=/trunk/; revision=51452
- Isolated Alt-Tab/Esc issues. Placed update_input_key_state when posting to a queue like wine. This fixed the shift key checks. The Alt-Space is handled after a Translate Message call (WM_SYSCHAR), developers need to check application code to help support it (ConCtrl32). Will move AltSwitch.c from win32csr and port patch from bug 5378 to User32. ReactOS registers the Switch Class in Win32k and it is not used.
- Implemented the rest of HotKey Support. ReactOS Explorer does not save hotkey actions.
- See related bugs 1091.
svn path=/trunk/; revision=51450
* Set IMAGE_SCN_MEM_NOT_PAGED flag for read-only data section (.rdata). Patch by Pavel Pisa.
See issue #5618 for more details.
svn path=/trunk/; revision=51447
- Correctly return whether there is a kernel APC pending in KiSwapContextExit. Fixes IRQL asserts seen in bugs 5955 and 5777. Michael Martin's help in finding and fixing this bug was invaluable. Also thanks to Art Yerkes and testing team for additional information.
See issue #5955 for more details.
svn path=/trunk/; revision=51445
- Swedish translation adjustments of calc and find
- Fix comments in magnify
Patch by Jan Blomqvist Kinander (JaixBly [at] spray [dot] se)
svn path=/trunk/; revision=51444
Prepare ReactOS for the change from the ancient 32 sectors / 64 tracks disk layout (used until Windows NT4) to the modern 63 sectors / 255 tracks disk layout (used since Windows 2000).
svn path=/trunk/; revision=51437