Commit graph

698 commits

Author SHA1 Message Date
Alexandre Julliard
4d32a475a8 Replace the link_window request by a set_parent request since that is
all link_window is used for at this point.
Get rid of the WIN_LinkWindow/UnlinkWindow functions.
2005-03-25 10:38:56 +00:00
Alexandre Julliard
cb7aa8753c Added support for xbuttons. 2005-03-24 19:16:54 +00:00
Alexandre Julliard
0bc8377bc2 Create a new server request for accepting hardware messages instead of
abusing reply_message.
Allow passing the determined window for a hardware message back to the
server to have it redispatch the message to the correct thread.
2005-03-23 10:33:17 +00:00
Alexandre Julliard
5054c79880 Try to always keep the server window Z-order in sync with the X11 one
using a heuristic based on mouse and expose events.
2005-03-21 12:37:00 +00:00
Alexandre Julliard
e3fe68926c Revert the previous change, this is not working right yet. 2005-03-17 20:51:53 +00:00
Alexandre Julliard
f75609087a Make the server know about the visible area of a window, which is the
window rect minus the caption and borders when they are handled by the
window manager.
2005-03-17 19:10:41 +00:00
Alexandre Julliard
4e47afb36f Compute the top clipping window directly on the server side. 2005-03-17 14:02:06 +00:00
Alexandre Julliard
073d5f2b79 Queue hardware messages even if we don't find a window for them the
first time around.
2005-03-16 20:06:45 +00:00
Alexandre Julliard
705909ac09 Converted the window children lists to standard lists. 2005-03-16 19:54:33 +00:00
Alexandre Julliard
cf2f14212a Avoid returning hardware messages if they have no chance to match the
filter.
2005-03-14 17:17:09 +00:00
Alexandre Julliard
dcab706fa0 Get rid of the registry saving level hack.
Make periodic saving the default behavior.
2005-03-14 11:00:43 +00:00
Alexandre Julliard
b9a9de6eb9 Clear the internal paint flag in the server before returning a
WM_PAINT message to avoid an extra server round-trip.
2005-03-10 17:19:33 +00:00
Alexandre Julliard
99615021fb Properly cope with get_message being called recursively while
processing a hardware message.
2005-03-10 11:52:25 +00:00
Peter Berg Larsen
514f432031 Tmp was not freed in case of errors in save_branch(). 2005-03-10 11:18:31 +00:00
Alexandre Julliard
1bc2caad02 Don't check children of minimized windows in get_update_region. 2005-03-09 11:49:46 +00:00
Ulrich Czekalla
5067909587 Create a thread-specific selection window to make sure we receive the
selection events in the correct thread.
2005-03-07 19:31:46 +00:00
Alexandre Julliard
d6885fe7d4 Avoid potential crash when freeing a message queue.
Properly initialize newly allocated messages.
2005-03-05 10:51:35 +00:00
Steven Edwards
5727918424 Added a check for poll.h. 2005-03-04 12:38:36 +00:00
Alexandre Julliard
a9e0fb1ba6 Convert the process dll list to a standard list. 2005-03-02 10:20:09 +00:00
Alexandre Julliard
aa34768677 Convert the object wait queue to a standard list. 2005-03-01 11:49:58 +00:00
Francois Gouget
10e3d96617 Fix a race condition in create_dir(). 2005-03-01 11:00:06 +00:00
Alexandre Julliard
0502638ee1 Convert the per-process thread list to a standard list. 2005-03-01 10:56:18 +00:00
Alexandre Julliard
efdb4960a2 Converted the debug event queue to a standard list. 2005-02-26 17:45:29 +00:00
Alexandre Julliard
b2eff1ca01 Converted the global screen buffer list to a standard list. 2005-02-25 21:06:11 +00:00
Alexandre Julliard
8e3b072249 Replaced the message_list structure by a standard list. 2005-02-25 21:05:11 +00:00
Alexandre Julliard
73209eb73e Convert the global thread list to a standard list. 2005-02-25 19:33:35 +00:00
Alexandre Julliard
48c0d51dc3 Convert the global process list to a standard list. 2005-02-25 19:31:26 +00:00
Alexandre Julliard
20894e2ffb Convert the per-thread mutex list to a standard list. 2005-02-25 16:58:43 +00:00
Alexandre Julliard
b1aad5d86f Regular files are always ready for I/O, no need to poll on them. 2005-02-25 14:02:20 +00:00
Alexandre Julliard
81b6a1fbe5 Convert the APC queues to use standard lists. 2005-02-25 14:01:40 +00:00
Alexandre Julliard
68abbc86e6 Convert the key notifications list to a standard list. 2005-02-24 19:43:53 +00:00
Alexandre Julliard
dd81ac50a9 Convert async I/O queues to standard lists. 2005-02-24 17:06:31 +00:00
Alexandre Julliard
43b2826714 Removed no longer used create_region function, and directly export
create_empty_region instead.
2005-02-22 19:42:35 +00:00
Alexandre Julliard
548c973457 Allow the client rectangle to be of arbitrary size and dimensions,
regardless of the window rectangle.
2005-02-22 19:41:43 +00:00
Krzysztof Foltman
b85017223f Ensure that caret position is not reset to (0, 0) when CreateCaret is
called second time with the same window.
2005-02-18 20:02:55 +00:00
Robert Shearman
b0f02b28b9 - Implement AdjustTokenPrivileges, DuplicateTokenEx and
GetTokenInformation (for the TokenPrivileges case).
- Return STATUS_NO_TOKEN for OpenThreadToken when there is no token
  set for the thread.
2005-02-11 11:52:06 +00:00
Robert Shearman
795e9de806 Support WaitNamedPipe timeouts. 2005-02-08 12:54:23 +00:00
Robert Shearman
04995ce90d Don't overwrite last byte of the window structure as we might not have
allocated the memory for it if extrabytes was 0.
2005-02-08 12:07:48 +00:00
Dmitry Timoshkov
6dba0a7718 Add support for winevent hooks. 2005-02-03 16:40:20 +00:00
Alexandre Julliard
ae661da49c Properly compute the client area valid rects and pass them to the
server in set_window_pos to avoid invalidating areas that remain
valid.
2005-02-03 13:40:12 +00:00
Alexandre Julliard
7c1cf8f009 Fixed refcount handling (waiting clients must not increase the
refcount of the pipe).
Converted linked lists to use the standard functions.
Small cleanups.
2005-02-03 10:48:23 +00:00
Alexandre Julliard
52e5ac5e41 Make sure leaked objects are printed even if a file descriptor is
still open.
2005-02-03 10:46:15 +00:00
Alexandre Julliard
e432d54fd7 Fixed potential crash in fd_dump function. 2005-02-03 10:45:18 +00:00
Dmitry Timoshkov
ed04d36b5d Add more tests for old style hooks and winevent hooks, make them pass
under Wine.
2005-01-27 11:14:19 +00:00
Eric Pouech
4634447d6b - got rid of include/async.h
- fixed some overlapped issues in socket handling
- moved kernel32.CancelIo implementation to ntdll
2005-01-14 19:54:38 +00:00
Alexandre Julliard
56206376b8 Desktop window is repainted on WM_ERASEBKGND, it must never get a
WM_PAINT.
2005-01-11 15:15:11 +00:00
Alexandre Julliard
646ab89f0a Support mapping non page-aligned binaries for SEC_IMAGE mappings. 2005-01-04 12:04:06 +00:00
Rein Klazes
5dc91e6c08 A starting process must obey the STARTF_USESTDHANDLES flag and use the
standard io handles from the StartupInfo structure, even if it is
starting a new console.
2004-12-15 10:47:23 +00:00
Robert Shearman
7572b125b5 Implement NtQueryTimer. 2004-12-13 21:10:58 +00:00
Alexandre Julliard
5defa49979 Moved update region handling to the server. 2004-12-07 17:31:53 +00:00
Eric Pouech
294835a839 Another round of const correctness fixes. 2004-12-06 20:43:55 +00:00
Peter Chapman
505dfdefb5 Fix up several inline assembler blocks so that they produce correct
code with the -fomit-frame-pointer gcc flag.
2004-12-02 18:19:25 +00:00
Eric Pouech
44158dd690 - moved event, semaphore, mutex implementation from kernel32 to ntdll
- added mutant implementation in ntdll, and use it for mutex
  implementation in kernel32
- added access parameter on event, semaphore, timer creation in
  wineserver (as ntdll interface requires it)
- added missing definitions in include/winternl.h
2004-12-02 18:05:37 +00:00
Eric Pouech
0a258964c2 Const correctness fixes. 2004-11-30 21:38:57 +00:00
Alexandre Julliard
ff986a5a93 Converted the timer list to use standard list functions.
Allocate a timer id when the window is 0 instead of relying on the
client to do it.
Allow setting timers on windows belonging to other threads (found by
Mike McCormack).
2004-11-29 18:08:18 +00:00
Dmitry Timoshkov
93a4e1eed3 Take into account window visibility when searching for a target for a
hardware mouse message.
2004-10-27 21:55:00 +00:00
Alexandre Julliard
085ef06bd5 Added is_window_visible function. 2004-10-27 21:54:41 +00:00
Alexandre Julliard
626aa3366f Added fallback syscalls for epoll functions. 2004-10-27 01:03:30 +00:00
Bill Medland
ec39d65540 Added a version option to the wineserver. 2004-10-19 03:57:41 +00:00
Vincent Béron
1d9df9f9c0 Create the necessary functions for wineserver contexts for Alpha. 2004-10-14 03:05:09 +00:00
Alexandre Julliard
969f57c24a Added support for epoll() as an alternative to poll() (based on the
work of Shachar Shemesh and Mike McCormack).
2004-09-23 04:48:24 +00:00
Hans Leidekker
719a789792 Fix signed/unsigned comparison warnings. 2004-09-22 02:46:38 +00:00
Alexandre Julliard
4949a717c4 Moved timeout processing to a separate function. 2004-09-20 19:14:35 +00:00
Alexandre Julliard
807fe07417 Don't bother to return partial region data in get_window_region and
get_visible_region, return STATUS_BUFFER_OVERFLOW instead.
2004-09-17 18:20:11 +00:00
Alexandre Julliard
17c775f13c Take care to not close the file handle if there are outstanding locks
and the directory options don't match.
2004-09-09 00:28:36 +00:00
Alexandre Julliard
15e12daf03 Converted the timeout list to use the standard list functions. 2004-09-08 04:17:31 +00:00
Alexandre Julliard
5e128dd470 Added xor_region, fixed rect_in_region. 2004-09-08 01:34:22 +00:00
Eric Pouech
440ad8ccf2 - ctrl-c enabling flag is now inherited
- fixed console-related fields in RTL_USER_PROCESS_PARAMETERS
- various clean-up in kernel32.SetConsoleCtrlHandler
- only send a console event once to a process and not to all the
  process' threads
2004-09-08 01:25:05 +00:00
Alexandre Julliard
0a6af13982 Make sure to run through the poll loop once before processing newly
added timers (reported by Mike McCormack).
2004-09-07 23:28:14 +00:00
Alexandre Julliard
edc90a9f9c Added rect_in_region function. 2004-09-01 22:49:14 +00:00
Ulrich Czekalla
342adc93ef The clipboard owner can be set by the thread that has the clipboard
open.
2004-08-23 17:57:03 +00:00
Alexandre Julliard
6a27b48895 Fd type is no longer used, get rid of it. 2004-08-18 00:04:58 +00:00
Eric Pouech
1ffddb4d0c - better support for non-blocking COMM and socket read/writes:
+ added necessary semantics to fd flags
  + no longer uses fd type (but fd flags) read/write semantic behavior
- fixed socket code to use the proper manifest constants
- fixes for kernel32.GetOverlappedResult without hEvent set
- in ntdll.Nt{Read|Write}File
  + always reset the event
  + added support for longlong offsets
  + better object disposal in error handling code paths
2004-08-17 23:37:55 +00:00
Alexandre Julliard
4616dcb9a7 Moved the WindowFromPoint functionality to the server so that we can
properly take into account the window region.
2004-07-20 22:17:38 +00:00
Alexandre Julliard
c4ec2108b1 Pass the environment for a child process through the server instead of
relying on the Unix environment.
2004-07-16 03:54:35 +00:00
Mike McCormack
99a6efa1af Fix a double free in the named pipe code. 2004-07-15 18:59:58 +00:00
Alexandre Julliard
3365eb7a2d get_visible_region: do not clip out siblings of the top-level window. 2004-07-06 23:54:49 +00:00
Mike McCormack
ea782b60d6 Translate ENODEV and ENXIO error codes to NT status codes. 2004-07-06 19:42:09 +00:00
Alexandre Julliard
618a7e5813 Added support for window regions in the server. 2004-06-29 03:53:25 +00:00
Dmitry Timoshkov
b3569e7015 Add a test case for clipboard functionality and fix some bugs revealed
by it.
2004-06-25 02:55:37 +00:00
Alexandre Julliard
e8d86b7cd4 Moved visible region calculation to the server. 2004-06-23 20:44:58 +00:00
Alexandre Julliard
15ca8209d6 Properly reset msg_thread when releasing the thread input structure. 2004-06-17 20:00:25 +00:00
Eric Pouech
b0fd2ade62 - Added ProcessBasicInformation class to ntdll.NtQueryInformationProcess.
- Make use of it in kernel32.
2004-06-14 17:02:00 +00:00
Alexandre Julliard
ed8a41c7b5 Only allocate even-numbered window handles, MS Project depends on that
(found by Dmitry Timoshkov).
2004-05-28 19:35:37 +00:00
Alexandre Julliard
60287d0ac2 Make sure we don't truncate the file on open before we have checked
the sharing modes (thanks to Dmitry Timoshkov for the test case).
2004-05-22 03:15:04 +00:00
Alexandre Julliard
8c29b5f0cc Removed the no longer used SMB file I/O support, we can't do reliable
file I/O in user space anyway.
2004-05-14 22:24:48 +00:00
Alexandre Julliard
5b23efc3a2 Make sure to save the registry files even if we failed to load them. 2004-05-14 00:45:11 +00:00
Alexandre Julliard
c07ce0571e Moved loading of the home registry files to the server, there's no
real need to make these configurable.
2004-05-07 04:13:21 +00:00
Alexandre Julliard
7e9757c61d Removed handling of special root keys, this is done by the client now. 2004-05-06 23:42:04 +00:00
Alexandre Julliard
72f87b8c06 Use pread/pwrite everywhere to avoid changing the file position while
the client is using it.
Get rid of the no longer used truncate_file request.
2004-05-01 02:50:06 +00:00
Alexandre Julliard
58447bcd09 Avoid autodetecting the prefix when loading the config file since the
first key may be named 'wine'.
2004-04-30 18:35:13 +00:00
Alexandre Julliard
ad9b799324 Reimplemented CreateDirectoryW and RemoveDirectoryW using ntdll
functions.
2004-04-27 02:27:09 +00:00
Alexandre Julliard
716878c5b1 Fixed a number of NT status values to be closer to NT behavior. 2004-04-16 23:32:40 +00:00
Alexandre Julliard
dfcfc98ed0 RtlSetCurrentDirectory_U: store a handle to the current directory
along with its name.
2004-04-16 05:00:46 +00:00
Alexandre Julliard
684b65cd52 Added support for FILE_DIRECTORY_FILE and FILE_NON_DIRECTORY_FILE open
options.
2004-04-16 04:31:35 +00:00
Filip Navara
2392a36370 Get rid of non-standard ERROR_UNKNOWN value. 2004-04-12 23:15:11 +00:00
Alexandre Julliard
18c08d307a Removed the get_file_info request. 2004-04-08 19:09:04 +00:00
Alexandre Julliard
db4517010b Handle the set_file_pointer request on the client side. 2004-04-07 22:02:09 +00:00
Alexandre Julliard
49b2f6d964 Get rid of the removable media handling in the server. 2004-04-06 23:41:01 +00:00
Alexandre Julliard
670711ef25 Handle file mappings on removable media entirely inside ntdll. 2004-04-06 23:13:47 +00:00
Alexandre Julliard
9ff78729fa Moved FILE_DELETE_ON_CLOSE support to the inode object so that we
really wait for the last close.
Added FILE_SHARE_DELETE support.
2004-04-02 19:50:49 +00:00
Alexandre Julliard
74bd1e47ed Check file sharing permissions based on the file inode instead of the
file name.
Added regression test for sharing permissions.
2004-03-27 20:48:42 +00:00
Alexandre Julliard
a1fe8b4f24 Use futimes() instead of utime() to implement SetFileTime, so that it
can be done on the client side.
2004-03-27 01:48:52 +00:00
Alexandre Julliard
adc0610db7 Make the standard create_file request handle serial ports too, and
remove the create_serial request.
2004-03-18 04:08:48 +00:00
Alexandre Julliard
014099caf5 Changed the create_file server request to take NtCreateFile flags
instead of CreateFileW ones (based on a patch by Eric Pouech).
2004-03-12 01:56:49 +00:00
Alexandre Julliard
db692c8f39 Open a real file handle for drive devices, and get rid of the server
device hacks (based on a patch by Eric Pouech).
2004-03-04 23:00:18 +00:00
Alexandre Julliard
e8a339c1d2 Portability fixes for LSB compatibility. 2004-03-01 21:32:02 +00:00
Uwe Bonnes
9ffce00940 Pass inherit handle flag properly for CreateNamedPipe. 2004-02-24 01:06:30 +00:00
Huw Davies
bdb63eca78 Add the F_NOTIFY defines if we're compiling with linux and they're not
in the system header files.
2004-02-10 20:08:24 +00:00
Alexandre Julliard
a5f816c6d3 Do a protocol error instead of crashing if the reply fd has not been
set.
2004-02-05 01:48:02 +00:00
Hans Leidekker
ff49652ef6 Improved error reporting.
Add some notification types and a test.
2004-02-05 01:45:58 +00:00
Mike McCormack
dc82769e61 Mapping a zero size file should fail. 2004-01-09 00:34:14 +00:00
Mike Hearn
43cb03be3a Implemented RegFlushKey and NtFlushKey. 2004-01-03 00:38:30 +00:00
Wim Lewis
99a01c03d3 EOVERFLOW does not exist on OpenBSD. 2004-01-02 20:11:35 +00:00
Alexandre Julliard
bd13ab8d78 Store a pointer to the client-side class structure in the server and
return it on create_window and destroy_class.
Only create a single instance of the desktop class for the whole
session.
Added some missing locking in the client-side class management.
2003-12-11 05:34:53 +00:00
Alexandre Julliard
bfce151ae5 Added window classes in the server, and support for inter-process
GetClassWord/Long (based on a patch by Mike McCormack).
Various fixes to the class instance handling.
2003-12-10 04:08:06 +00:00
Alexandre Julliard
08d01923e5 Print names for Win32 errors too, plus a few more status codes. 2003-12-10 02:14:23 +00:00
Alexandre Julliard
ebf1243ec1 Added support for inter-process GetWindowWord.
Do better range checking on the window extra bytes.
2003-12-10 01:34:51 +00:00
Alexandre Julliard
d5b4232a3f Added set_win32_error() for error codes that don't have an NT status
equivalent.
2003-12-10 01:12:18 +00:00
Alexandre Julliard
f3f435ffa1 Added wine_server_release_fd function to release the fd returned by
wine_server_handle_to_fd. Fixed a couple of potential fd leaks.
2003-12-01 23:01:12 +00:00
Alexandre Julliard
8eb5e68168 cbthread and cbowner don't need to be exported. 2003-11-28 23:17:56 +00:00
Alexandre Julliard
97903d260b Added support for inter-process GetWindowLong on the window extra
bytes.
2003-11-26 22:15:41 +00:00
Martin Fuchs
76adb1ff0d - Move shell window into the background.
- Add tests for Get/SetShellWindow().
2003-11-18 00:13:34 +00:00
Alexandre Julliard
3c68ab05ca Make init_thread request deal better with fd allocation errors. 2003-10-27 22:10:22 +00:00
Alexandre Julliard
f9f37beb8a Added support for the linuxthreads cancel signal as an alternative to
SIGCHLD.
2003-10-24 04:29:01 +00:00
Daniel Marmier
7832562ee6 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-21 23:57:25 +00:00
Alexandre Julliard
e55d5937ac Set or clear the BeingDebugged flag in the PEB when a debugger is
attached to or detached from a process.
Don't send exception events to the server unless a debugger is
present.
2003-10-14 01:30:42 +00:00
Alexandre Julliard
af192f83b6 Store a "removable" flag instead of the full drive type in the server
file object; this way we don't need to use GetDriveTypeW in the loader
code.
Make sure we always have a valid builtin_load_info pointer.
2003-10-08 00:25:32 +00:00
Alexandre Julliard
8d174d3f47 Store the global shell, progman and taskman windows in the server
(based on a patch by Martin Fuchs).
2003-10-07 03:40:23 +00:00
Alexandre Julliard
841f898663 Converted process creation to Unicode. 2003-10-04 04:09:41 +00:00
Gerald Pfeifer
27005516a3 Cast time_t to long for printing. 2003-10-01 03:32:16 +00:00
Alexandre Julliard
c30cefb2d5 Store module names in Unicode in the server. 2003-09-30 01:04:19 +00:00
Eric Pouech
9fd54b2838 - Implemented a few information classes in NtQuerySystemInformation.
- Added handle information to (wineserver) process snapshot.
2003-09-16 01:07:21 +00:00
Alexandre Julliard
ef5f6c7fad Moved list.h to include/wine so that it can be used everywhere. 2003-09-11 20:45:17 +00:00
Alexandre Julliard
e0b5270b4a Fixed include statements to match server_protocol.h (spotted by Eric
Pouech).
2003-09-08 19:04:01 +00:00
Alexandre Julliard
62986a0107 Added a few missing stdarg.h includes. 2003-09-07 05:08:14 +00:00
Alexandre Julliard
e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
de1990f4cf Cope with wait4 being interrupted by a signal. 2003-08-21 21:35:15 +00:00
Alexandre Julliard
9e9e3a9ce5 We need to ignore STATUS_OBJECT_TYPE_MISMATCH errors too when setting
the process console.
2003-08-19 03:46:24 +00:00
Mike McCormack
5ac945c021 Implement registry key unloading. 2003-08-19 03:08:17 +00:00
Eric Pouech
449d10fd79 Fixed regression in process creation (std handle inheritance). 2003-08-19 01:05:17 +00:00
Alexandre Julliard
039e13118e Implemented inter-thread SendMessageCallback. 2003-07-26 20:36:43 +00:00
Mike McCormack
36cd6f5dbb Added a security token object in wineserver. 2003-07-24 00:07:00 +00:00
Francois Gouget
3ca761220a Spelling fixes (s/occured/occurred/ and variants). 2003-07-15 20:53:39 +00:00
Alexandre Julliard
ca3ac8f155 Run WH_KEYBOARD_LL and WH_MOUSE_LL hooks in the context of the thread
that set the hook.
2003-07-11 21:55:58 +00:00
Alexandre Julliard
09029b2878 Implemented the SMTO_ABORTIFHUNG flag of SendMessageTimeout. 2003-07-11 04:09:42 +00:00
Alexandre Julliard
4f196ead13 Implemented the ThreadBasicInformation case for
NtQueryInformationThread.
2003-07-09 02:57:57 +00:00
Alexandre Julliard
d55e7f1e9b Store the hook table in the thread queue instead of the thread
structure, and make sure the queue is allocated when setting a hook.
2003-07-03 18:16:48 +00:00
Alexandre Julliard
b23aa94321 One more workaround for a missing NFS lock daemon. 2003-07-03 18:12:02 +00:00
Eric Pouech
f6a70969e1 - start moving a few file related functions from files/file.c to
dlls/kernel subdir (also splitting 16bit APIs in a separate file)
- implemented ntdll.Nt{Lock|Unlock}File, and made use of those for the
  kernel32 equivalent
- implemented a few information classes in NtQueryInformationFile and
  NtSetInformationFile (still lots of missing classes)
- enhanced the get_file_info server request in order to implement
  correctly NtQueryInformationFile (change time & file alloc size)
- rewrote registry loading to comply with latest changes
2003-06-24 02:32:01 +00:00