Commit Graph

261 Commits

Author SHA1 Message Date
crs 2fc8780285 Added hack to heuristically detect bogus mouse motion caused by
a race condition where the synergy server updates the mouse
position but the synergy hook later receives a mouse update from
before the position change (i.e. out of order).
2003-02-16 19:53:56 +00:00
crs 9a7e452a3e Commented out an unnecessary hook and added a compile time
switch to disable grabbing of keyboard on win32 to facilitate
debugging.
2003-02-16 19:51:46 +00:00
crs 60fdb1f529 Changed heap to stack allocation in an oft-called function for
data that's never used outside the function.
2003-02-16 19:50:36 +00:00
crs 3351a66f51 Fixed memory leaks. 2003-02-16 19:49:44 +00:00
crs 57ba0cb660 Fixed incorrect mouse button swapping on client screens. 2003-02-12 20:59:25 +00:00
crs c148bc7c9c Fixed error in debug build on win32. 2003-02-12 20:59:08 +00:00
crs fefe457517 Added a simple implementation of vsnprintf for unix platforms
without it using /dev/null, vfprintf(), and vsprintf().
2003-02-12 19:50:22 +00:00
crs 154a474289 Made sure every file includes common.h directly or indirectly.
Also made sure common.h is included before any system headers.
2003-02-12 19:38:39 +00:00
crs 116005d64f To support keymaps with only upper (or lower) case keysyms we now
use Xlib to convert an unmatched keysym to upper and lower case and
use whichever, if any, is not the same as the original keysym.
This supports case conversion in any language that Xlib supports
it in.
2003-01-29 22:16:40 +00:00
crs dedb48d244 Applied patch from grmcdorman at users dot sourceforge dot net to
support keymaps that have only uppercase letters, which is the case
by default on the Sun X server (for US keyboards anyway).
2003-01-29 19:32:25 +00:00
crs 06ed985f84 Changed version number to 1.0.2. 2003-01-25 13:39:26 +00:00
crs 6b3e451b83 Added ability to set screen options from the windows launch dialog. 2003-01-25 13:34:51 +00:00
crs 188d89108b Added missing entry in a socket family table. This was a serious
bug and should've failed on all platforms but just happened to
work on linux and windows.
2003-01-25 13:34:17 +00:00
crs 669f0b3974 Changed version number to 1.0.1. 2003-01-22 08:37:32 +00:00
crs a55119f096 Fixed running as a service on Windows NT family. 2003-01-22 08:36:43 +00:00
crs 784297af24 Changed version number to 1.0.0. Documentation updates. 2003-01-18 16:21:36 +00:00
crs e86e552ac8 Fixed stupid errors introduced by last attempt to fix broken
mouse behavior on multimonitor windows systems.  Those errors
broke synergy on all windows systems running as a server.
Also added an attempt to reduce the occasional jump that can
occur when switching screens when windows is the server.
2003-01-18 14:36:19 +00:00
crs 68a591210b Was forcing modifier keys that have no effect on the keysym
lookup to be up when synthesizing key events.  Now leaving
those modifiers in their current state.
2003-01-18 14:31:54 +00:00
crs 24c0b3fd32 Fixed lookup of neighbor screens. The first problem was an old
code in a conditional for moving left that blew an assert verifying
that the mouse position was really on the screen if the neighbor
screen wasn't connected.

After that was fixed there was another problem when one screen
linked to another which then linked (in the same direction) to
itself.  If the latter screen wasn't connected then it'd get into
an infinite loop.
2003-01-16 21:28:15 +00:00
crs a8bd4e7ff0 Moved log message into conditionals so it only appears when the
conditions are true.
2003-01-14 19:46:41 +00:00
crs f7e936faa9 Another try at fixing broken mouse behavior when a windows system
has multiple monitors with 0,0 of the virtual desktop not at the
upper-left.
2003-01-14 19:46:17 +00:00
crs 6c56f8a9fc Removed unnecessary variable names. 2003-01-12 16:35:11 +00:00
crs b2e11d3d35 Now catching and ignoring errors when writing to a socket in those
cases where errors were not being caught, typically when responding
to some other socket or protocol error.
2003-01-12 16:08:45 +00:00
crs a14a462e22 Fixes to support FreeBSD and Darwin. 2003-01-11 21:06:21 +00:00
crs 4bf0836eae Synergy no longer tries to suppress the screen saver once it starts.
It was doing that already if started through synergy but not if
started by something outside of synergy.  In particular, if you
use `xscreensaver-command --activate' synergy used to send fake
mouse motion events every 5 seconds to deactivate it.  That's
unlikely to be what the user wanted, especially if the locking is
enabled since it would force the password dialog to appear.

As before, it's recommended that client screens not use locking
because xscreensaver will not deactivate without getting a
password even if we make the request through a programmatic
interface.  Presumably that's for security reasons but it makes
life harder for synergy.
2003-01-11 15:16:41 +00:00
crs 1758ea6f9f Attempt to fix problems with multimon windows. The mouse position
reported by the synergy hook dll is in a space with 0,0 in the
upper-left which is not necessarily the same as the virtual desktop
space.  So the windows primary screen now accounts for that.  On
the secondary screen, mouse_event() doesn't seem to accept negative
coordinates even on the windows NT family, making monitors with
negative coordinates inaccessible via absolute moves.  So if the
move will be to negative coordinates, use the windows 95 family
fallback of absolute moving to 0,0 then relative moving to the
final position.
2003-01-11 14:01:44 +00:00
crs 7872c30111 Portability fixes. Now builds on Linux 2.2 and 2.4 and solaris.
Also builds on i386, alpha, G3/G4, and sparc.
2003-01-08 21:36:14 +00:00
crs 0347bb1667 Changed log level of two messages. Now won't spew about reading
window properties and will report connection failure at DEBUG
instead of DEBUG1.
2003-01-08 21:36:13 +00:00
crs 84d75600a9 Changed version number to 0.9.15. Added 0.9.15 log entries. 2003-01-07 21:47:27 +00:00
crs 9a245498a6 Attempts to improve forcing synergy window to foreground. These
changes don't seem to improve the situation but don't seem to
hurt either.
2003-01-07 21:12:51 +00:00
crs 1fd7ce14f3 Added low-level mouse hook to support mouse wheel on NT (>=SP3).
Thanks to karsten for the patch used as a starting point.
2003-01-07 21:11:54 +00:00
crs f832bdaf12 Added missing files. 2003-01-05 21:52:28 +00:00
crs e9cc0b434e Moved CPrimaryScreen and CSecondaryScreen to the lib/synergy
and the platform specific implementations to lib/platform.
Added an lib/arch method to query the platform's native wide
character encoding and changed CUnicode to use it.  All
platform dependent code is now in lib/arch, lib/platform,
and the programs under cmd.  Also added more documentation.
2003-01-05 21:48:54 +00:00
crs f65921bc3f Refactored some platform dependent code into a new library,
lib/arch.  This should make porting easier.  Will probably
continue to refactor a little more, moving platform dependent
event handling stuff into lib/platform.
2003-01-04 22:01:32 +00:00
crs 22457c78fe Made synrgyhk.dll error messages less cryptic. 2002-12-25 22:56:09 +00:00
crs 5220314c4f Changed version number to 0.9.14. Added NEWS item. 2002-12-25 19:21:17 +00:00
crs fd5625ba99 Improved handling of screen saver handling when windows 2k is
the client and the screen saver is password protected.  It used
to immediately turn off the screen saver (unintentionally) in
that case.
2002-12-25 18:44:54 +00:00
crs 41dc621579 Fixed typos. 2002-12-25 18:42:39 +00:00
crs 9567a970a8 Changes to support building on solaris, irix, and darwin. Also
removed test for working fork (AC_FORK).
2002-12-25 10:35:59 +00:00
crs de1fadc027 Added OptionTypes.h to VC++ project. 2002-12-24 10:01:28 +00:00
crs 1eb2ed2d3f No longer sending options if there aren't any and no longer
sending a reset before sending options (the caller can do
that if necessary).
2002-12-23 14:49:14 +00:00
crs 50e9e855b0 Fixed handling of %I arguments to readf() and writef(). 2002-12-23 14:48:12 +00:00
crs 78538da754 Added code to process set/reset options messages from server. 2002-12-23 14:47:44 +00:00
crs 3fc1ddf6ce Added support for per-screen options in the configuration file
and sending those options to the appropriate client screens.
Currently, two options are supported:  halfDuplexCapsLock and
halfDuplexNumLock mark the caps lock and num lock keys,
respectively, as being half-duplex.
2002-12-23 13:55:21 +00:00
crs 9c70921525 Now handling any number of pointer buttons. 2002-12-15 22:39:59 +00:00
crs 2559dd2f05 Now ignoring half-duplex keys that are down when deciding if
the mouse is locked to the screen.  We can't tell if a half-
duplex key is physically down and logically down just means
it's active so there's no point in letting it lock the mouse
to the screen.
2002-12-15 22:17:18 +00:00
crs 7649afa00a Now restoring toggle key states on leaving a client screen to
their state when the screen was entered.  Previously when
leaving a client screen the toggle keys kept their state so,
say, caps lock, would remain on.  This was inconvenient if
you then used the client's keyboard directly.
2002-12-15 22:14:49 +00:00
crs 2128302307 Fixed loss of ctrl+alt when transmitted to non-windows platforms
from a windows server.  Was converting ctrl+alt on windows to
mode switch on the server.  No longer doing that;  windows clients
will interpret ctrl+alt as AltGr and other clients will just see
ctrl+alt.  Also made the right alt key mode switch on windows
servers in case the user wants to force a mode switch, but that
means the right alt key no longer acts as alt on clients.
2002-12-15 20:00:52 +00:00
crs 773fcae8b3 Fixed client not reconnecting when server dies bug. 2002-12-15 19:58:41 +00:00
crs eda93fc20d Cleanup and changed some DEBUG1 messages to DEBUG2. 2002-12-15 19:57:28 +00:00
crs 3ae1c67aef Changes for version 0.9.13. 2002-11-05 19:56:56 +00:00
crs 52d8edb747 Fixed bug in detecting screen saver activation. Was using || instead
of && in conditional.
2002-11-05 19:23:05 +00:00
crs ca984acb91 Removed configure check for mbstate_t and uses of it. 2002-11-03 18:20:21 +00:00
crs 17e8ba2dbd Merged fixes for building on MacOS X. It dies on one file with
an 	internal compiler error;  building that file without
optimization works around the compiler bug.  Sadly, synergy can
only interact with X windows, not native MacOS windows.
2002-11-03 18:09:28 +00:00
crs cf13980bb8 Fixed bugs in error handling in CTCPSocket; previously was not
handling read errors at all and error handling for writes was
never being used.  Now the socket disconnects if a read or write
fails on the socket for any reason except EINTR.  Also added
<netinet/in.h> to includes in CNetwork.h because it's needed on
some platforms.
2002-10-30 22:16:30 +00:00
crs 9102fb80b9 Ported recent changes to win32 and fixed CRLF problems with project
files (most had CRCRCRLF).
2002-10-29 22:07:55 +00:00
crs e06368b950 fixed typo in makefile. 2002-10-29 07:40:43 +00:00
crs 541276595e solaris configure and build fixes. without having solaris i
can only hope that these changes actually work.
2002-10-28 22:49:21 +00:00
crs 24119802c6 Removed obsolete comment. 2002-10-28 21:33:48 +00:00
crs 8dbc9d62bc Added workarounds for missing reentrant versions of wide char
to/from multi-byte conversion functions.
2002-10-22 22:35:13 +00:00
crs 0ce15c1a9b Moved CUnicode to lib/io. That's a reasonable place for it
that's after lib/mt.  It needs to be after lib/mt in preparation
for supporting platforms without the reentrant wide char and
multi-byte functions.
2002-10-22 21:30:48 +00:00
crs 66c4b66d7c Fixed conditional to test for multimon to do nasty win32 mouse
positioning hack.  Was doing hack if *not* a multiple monitor
system but should've been doing it if is *is* a multimon system.
2002-10-20 22:39:54 +00:00
crs 8f229393b8 Replaced inet_addr() with inet_aton(), which is a better function
anyway but isn't implemented in winsock, removed use of INADDR_NONE
which some platforms don't define except on winsock which does
define it, and changed SOL_TCP to IPPROTO_TCP which should work on
more platforms.
2002-10-20 22:36:24 +00:00
crs 285cc3abc0 Fixed CXWindowsScreen to force the event loop to wake up when
exitMainLoop() is called.
2002-10-17 21:37:41 +00:00
crs 09e0750a11 Fixed CThreadRep to not raise a signal on the thread if it's
already dead.  Otherwise the signal could propagate to the
parent thread (at least on linux threads) and cause havoc.
2002-10-17 21:37:37 +00:00
crs 1d7f3d2aaf Changed server to fail with an error if in can't bind() the listen
socket for any reason other than it's in use.
2002-10-17 21:37:31 +00:00
crs 586a5a81ab Changed non-reentrant network functions to be reentrant and
thread safe.
2002-10-17 20:56:28 +00:00
crs 11e29ff7eb Added support for using select() instead of poll(). 2002-10-16 22:01:50 +00:00
crs c1797c6867 Added matching pthread_attr_destroy() for each pthread_attr_init()
in change 610.
2002-10-16 19:40:29 +00:00
crs d9c622ae04 CConfig now accepts and discards \r at the end of a line. This
allows the unix server to read configuration files created on
microsoft windows platforms.
2002-10-15 22:17:41 +00:00
crs a18b1462cf Fixed use of %s instead of %{1} in format() call. 2002-10-15 22:08:10 +00:00
crs c405c58c64 Renamed XThreadUnavailable to XMTThreadUnavailable and derived it
from XBase so it can be caught normally.  Changed client and server
to handle unavailable threads (in main loop, anyway).
2002-10-15 22:01:41 +00:00
crs abee021db2 Workaround for pthread bug on RedHat 7.2 on multiprocessor
systems.
2002-10-15 21:35:12 +00:00
crs d8dde48c2b Changed log() and logc() macros to LOG() and LOGC(), respectively.
This avoids a conflict with the standard math library log()
function.
2002-10-15 21:29:44 +00:00
crs 13c734d822 removed std::exception from base class list of XBase. this
is a workaround for gcc 3.2 until everything necessary has
throw() specifiers.
2002-09-14 21:31:35 +00:00
crs 5e4289dc80 now logging bind failures as warnings. 2002-09-14 20:56:50 +00:00
crs fec679cfe5 added better network error message support. 2002-09-14 20:56:28 +00:00
crs 4586f88188 Rewrote handling of key press on X11 client; it should be much
more robust now.  Also added handling of Super modifier key and
changed windows keys to map to Super instead of Meta, which is
the default on my keyboard.
2002-09-14 12:07:02 +00:00
crs 152eddc0c6 Changed version to 0.9.12. 2002-09-14 11:59:56 +00:00
crs a210c8c1ec Changed version number to 0.9.11. Added NEWS item. 2002-09-04 21:17:01 +00:00
crs ecb2fbb342 now looking up SendEvent() using GetProcAddress() so win95
systems can run the synergy client.
2002-09-04 21:14:18 +00:00
crs 7f21588e9b fixed bug that caused the wrong keycode to be used for most,
possibly all, keysyms.  was reading past the end of an array
of keysyms.
2002-09-04 20:17:54 +00:00
crs a7d413dd75 Changed version number to 0.9.10. 2002-09-02 17:36:25 +00:00
crs a729e33cfb Fixed win32 config saving, keyboard mapping, and AltGr bugs.
Made extensive changes to the launcher to provide more control
over setting up auto-start and it now saves configuration to
the user's documents directory if auto-starting at login and
saves to the system directory if auto-starting at boot.
Replaced MapVirtualKey() with table lookup to work around that
function's lack of support for extended keyboard scan codes.
Added first cut at support for AltGr.
2002-09-02 17:30:04 +00:00
crs cc8272e258 work around to get mode switch working. 2002-09-01 16:45:44 +00:00
crs 3295705f97 checkpoint. trying to add support for mode switch key to X11
screens.
2002-09-01 15:30:00 +00:00
crs 210ed86827 added more tests to autoconf. also now handling missing sstream
header in gcc 2.95 by including sstream header backported from v3.
2002-09-01 10:31:10 +00:00
crs b0b494b8fa lowered severity of some debug messages. 2002-09-01 09:28:54 +00:00
crs 79ce1dab4f Changed version number to 0.9.9. 2002-08-18 17:45:59 +00:00
crs 7b3999b166 fixed win32 deadlock. when a client disconnects the server will
warp the mouse to the primary screen.  entering the primary
screen causes the primary screen's window to be hidden.  the
deadlock occurs because hiding the window seems to post a
message then wait for it to be handled (or possibly it won't
send a message while a posted message is being handled).
thread A locks the mutex, warps the mouse, the hides the window.
thread B begins processing the mouse warp then tries to lock
the mutex.  thread A is waiting on the event loop owned by B
while B is waiting on the mutex owned by A.  this fix simply
hides the window asynchronously.  however, there may be other
ways to cause a similar deadlock that have not been found.
2002-08-18 17:40:10 +00:00
crs a4db7f0005 fixed PrintScrn handling; it was being changed to keypad multiply. 2002-08-18 17:35:10 +00:00
crs a0c2cd10dd removed bogus #error. 2002-08-18 17:32:27 +00:00
crs 305b01edf9 no longer sending fake events for unmapped logical buttons. 2002-08-18 17:31:48 +00:00
crs 639cb26a7d removed pre-instantiation of templates in header file. 2002-08-11 11:50:07 +00:00
crs 435bb738e6 added win32 launcher program. also changed VC++ dsp and dsw
files to binary form so \r\n aren't converted.  added icons
to client and server apps on win32.
2002-08-11 11:49:36 +00:00
crs f6c3a9453b added copyright to top of each file. 2002-08-02 19:57:46 +00:00
crs 24e1d6fe99 Removed commented out code. 2002-08-02 17:53:44 +00:00
crs 3f13217929 minor automake fixes. 2002-08-01 11:45:21 +00:00
crs ee46c5e35a fixed comment. 2002-07-31 17:40:21 +00:00
crs 5bb5542a13 fixes to get vpath builds working (necessary for `make distcheck'). 2002-07-31 17:34:05 +00:00
crs fae797e220 Moved version header to base and it now uses VERSION macro
from config.h if available (which means version is now a
string, not three integers).  Changed version to 1.0.0 and
protocol version to 1.0.  And added MAINTAINERCLEANFILES
to makefiles to remove generated files.
2002-07-31 16:57:26 +00:00
crs 8c1f5f623b added EXTRA_* files to get `make dist' doing the right thing. 2002-07-31 16:27:06 +00:00
crs 12f1cb58b9 removed now unnecssary #define. 2002-07-31 13:56:59 +00:00
crs cfe5b99f9d okay, now the files should no longer be executable. 2002-07-31 13:41:58 +00:00
crs c6d98af056 now building hook dll for release without linking in standard
C runtime.  need C runtime for debug build for asserts.
2002-07-31 12:40:41 +00:00
crs 5e40de48f9 fixed problem with opening client and server. in some cases it
would fail to open in such a way that it could never succeed
but it'd never stop retrying.  now terminating when open fails
such that it'll never succeed.
2002-07-31 12:39:34 +00:00
crs f5795a6630 added new files to projects and added two project files that
should've been adding in change 530.
2002-07-30 19:03:40 +00:00
crs 0d70150589 made it so a negative kHeartRate disables heartbeats and set
kHeartRate to -1.
2002-07-30 18:49:31 +00:00
crs da361e9686 moved exception definition to header file. 2002-07-30 18:31:21 +00:00
crs 69496abbab now using class factories to move some decisions from the libraries
into the application.
2002-07-30 18:31:00 +00:00
crs fee4095624 Reorganized source tree. Moved client.cpp into cmd/synergy as
synergy.cpp and server.cpp into cmd/synergyd as synergyd.cpp.
Moved and renamed related files.  Moved remaining source files
into lib/....  Modified and added makefiles as appropriate.
Result is that library files are under lib with each library
in its own directory and program files are under cmd with each
command in its own directory.
2002-07-30 16:52:46 +00:00