Commit Graph

36 Commits

Author SHA1 Message Date
crs 16110acaa2 Added support for a global relative mouse motion option. When true
and on a secondary screen and locked to the screen (via scroll lock)
mouse motion is sent as motion deltas.  When true and scroll lock
is toggled off the mouse is warped to the secondary screen's center
so the server knows where it is.  This option is intended to support
games and other programs that repeatedly warp the mouse to the center
of the screen.  This change adds general and X11 support but not
win32.  The option name is "relativeMouseMoves".
2004-05-01 15:18:59 +00:00
crs bede6352c1 Fixed bug in handling rejection of screen with name that's already
in use.  The client was being correctly rejected but the already
connected client was being forcefully disconnected too because the
client to disconnect was found by looking up the client by name.
We now instead look up the client by IClient*.
2004-04-05 21:23:44 +00:00
crs 3db9facb6c Added workaround for win32 low-level mouse hook position weirdness.
The low-level hook can report mouse positions outside the boundaries
of the screen and bogus retrograde motion.  This messes up switch on
double tap.  This change attempts to detect and suppress the bogus
events.
2004-04-05 21:10:06 +00:00
crs 4805453190 Fixed failure to initialize double tap and wait to switch timeouts. 2004-03-31 22:12:53 +00:00
crs e2a31e8b66 Converted win32 to new keyboard state tracking design. Also
changed locking to screen so that keys no longer count (only
mouse buttons and scroll lock toggled on).  This is to deal
with the unreliability of key event reporting which can leave
us locked to a screen with no key physically pressed.  The
result of this is that clients get key repeats and releases
without the corresponding key press.  CKeyState handles this
by discarding repeat/release events on keys it hasn't seen go
down.  Also made a few other minor fixes to win32 keyboard
handling.
2004-03-26 20:59:26 +00:00
crs 9e995bedbf Win32 fixes. Fixed slightly off cursor positioning when using
absolute mouse_event().  Improved keyboard handling:  now using
keyboard layout of last foreground window when leaving server
so users can meaningfully choose the locale, moved dead key
handling into hook library so there should be no more race
conditions involving the keyboard dead key buffer, simplified
keyboard and cursor handling by using a full screen transparent
window when not using low level hooks, fixed error in restoring
buffered dead key when checking for dead keys.  This hopefully
fixes all known keyboard bugs on win32.
2004-03-08 20:53:32 +00:00
crs a27c6ad2c6 Server now disables jump zones when scroll lock is active. 2004-03-06 16:20:08 +00:00
crs c3135b1b1c Moved clipboard changed event to CClientProxy because only it
and CServer use it.  CServerProxy instead makes a direct call
to CClient, like it does for most other messages.
2004-02-29 17:28:51 +00:00
crs 54acf38d82 Merged Win32 updates. Added full warnings on g++. Fixed bug in
client when handling server rejection.
2004-02-28 12:19:49 +00:00
crs 48908242d2 Checkpoint. Conversion to event driven system complete for Unix.
Still need to convert win32 platform specific files.
2004-02-15 17:32:11 +00:00
crs 1861f21fb5 Checkpoint. synergys now works. Still need to do lib/client and
synergyc.
2004-02-14 14:04:36 +00:00
crs 848aee7a3a Checkpoint. Code does not run. Still converting over to new
event loop model.  Streams, stream filters, and sockets are
converted.  Client proxies are almost converted.  CServer is
in progress.  Removed all HTTP code.  Haven't converted the
necessary win32 arch stuff.
2004-02-01 21:09:22 +00:00
crs 47ca409ff9 Merged primary and secondary screens into one class. 2003-09-02 22:05:47 +00:00
crs d577d457e3 Made double tap require moving farther away from the tapped edge
before arming.  This should reduce spurious double taps.
2003-05-21 19:38:11 +00:00
crs 923935060a Fixed jumping to same client screen. It was broken by an earlier
change (probably double tap).  Jumping to the same server screen
worked correctly.
2003-05-08 21:59:35 +00:00
crs 11f90022e0 Checkpointing improved key handling. This change adds non-ASCII
key handling to win32 on both client and server.  It also changes
the protocol and adds code to ensure every key pressed also gets
released and that that doesn't get confused when the KeyID for
the press is different from the KeyID of the release (or repeat).
2003-04-27 17:01:14 +00:00
crs a7e2141ede Added a log message why the user is locked to the screen. 2003-03-17 22:32:01 +00:00
crs 1d17f865ea Added switch delay and double-tap options to win32 and added a
tray icon to the client and server that gives status feedback to
the user and allows the user to kill the app.
2003-03-12 22:34:07 +00:00
crs f411df65fb Added support for a user option to require hitting the edge of a
screen twice within a specified amount of time in order to switch
screens.  This can help prevent unintended switching.
2003-02-23 19:29:08 +00:00
crs 7bbd33d787 Added support on X11 for a global option to delay switching screens
when the mouse reaches a jump zone.
2003-02-22 21:53:25 +00:00
crs 366537dc22 Added support for heartbeat global option. 2003-02-22 16:20:23 +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 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 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 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 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 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 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 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 5e4289dc80 now logging bind failures as warnings. 2002-09-14 20:56:50 +00:00
crs f6c3a9453b added copyright to top of each file. 2002-08-02 19:57:46 +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 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
Renamed from server/CServer.cpp (Browse further)