Commit Graph

81 Commits

Author SHA1 Message Date
crs23 460b751aba Applied a number of patches.
* HP-UX fixes (Bernd Noll)
  * Now handling accept() taking an int 3rd arg
  * Now casting sizeof() to socklen_t where necessary
* BSD ports fix (Kristen Glynn)
  * Now defining NULL via stddef.h
* Crash on X11 using clipboard (Daniel Gollub)
  * CXWindowsClipboard::pushReplies() increments iterator better
* Solaris/HP-UX compile errors
  * Now #ifdef out sets of key syms if first key sym undefined
* Fix assertion on bad mouse position (ubiquitous_q)
  * Validate mouse position from client and fix if necessary
2007-09-06 05:02:13 +00:00
crs23 5c29ae9967 Applied patch by maruel:
- Fixed taking the address of begin() on an empty std::vector.
- Fixed nsis makefile to use %ProgramFiles% environment variable.
- Fixed nsis makefile to pass the output directory and file to makensis.
- Fixed synergy.nsi to get the files from the output directory. That
  enables a debug build of the installer.
- Fixes to compile under VS2005.

I did not apply VS2005 project files, instead adding nmake files.
nmake is pretty weak but the makefiles can be modified without having
visual studio.  Also modified the .rc files to not use winres.h.
This plus nmake means synergy can now be built using the freely
downloadable Microsoft Windows SDK for Vista, available from
microsoft's web site.  This change removes all of the old VC++6
project files in favor of the nmake files.  It also removes the
XCode project in favor of ./configure and make.

All of the nmake files are named nmake.mak.  Only the top level
makefile is directly useful (the rest are included by it) so all
builds are from the top level directory.  nmake knows the following
targets:

  all:  build synergy.exe, synergyc.exe and synergys.exe
  clean:  remove all intermediate files, keep programs
  clobber:  clean and remove programs
  installer:  build programs and an installer
  debug:  build a debug version of 'all'
  release:  build a release version of 'all'
  debug-installer:  build an installer of the debug build
  release-installer:  build an installer of the release build

The default build version is release so 'all' and 'installer' will
build a release version.  The installer itself never has debug
symbols, just the stuff it installs.  The default target is 'all'.
To build use:

  nmake /nologo /f nmake.mak <target>

VC++ and VisualStudio users may need to manually run vcvars.bat in a
command.exe or cmd.exe window before invoking nmake.  The Window 98/Me
command.exe may not handle potentially long command lines;  I haven't
tried to verify if that works.
2007-09-06 05:01:44 +00:00
crs 52ae656411 Restored lost files and changes in version 1.3.1 to depot. 2007-06-17 11:19:18 +00:00
crs 3d961e4767 Adapted and applied patch by Brent Priddy for re-resolving the server
hostname on each connection.  This allows the client to startup
without being able to resolve the server's hostname.  It also lets
it handle changes in the server's address, a typical scenario when
the client is a laptop moving between networks.
2004-12-30 13:28:51 +00:00
crs 07e2a3e511 Removed recursive mutexes. Simplified stream filters as a side
effect.  Removed -D_BSD_SOURCE and -D_XOPEN_SOURCE=500 from
compile since they're not longer necessary.
2004-09-29 21:59:26 +00:00
crs 376bba970b Now accepting screen names that end in a dot since many OS X
users have misconfigured their systems to have hostnames that
end in a dot.
2004-09-28 22:25:35 +00:00
crs 3c3c31008e Added half-duplex option for scroll lock key. 2004-09-28 22:19:11 +00:00
crs 93d74a1fda Fixed handling of screen resolution changes. 2004-05-16 18:04:36 +00:00
crs 62b5cefb64 Changed VC++ projects to put release targets in ./build, debug
targets in ./debug, and intermediate files under ./gen.
2004-05-16 18:02:49 +00:00
crs d84e5a26be Added win32 clipboard support for images and HTML. Still need X11
support.
2004-05-02 08:04:48 +00:00
crs 3758d9d282 Added files forgotten in previous checkin. 2004-05-01 15:19:53 +00:00
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 083607345a Removed DEPTH, VDEPTH, and VPATH from makefiles. 2004-04-04 12:12:32 +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 8d99fd2511 Checkpoint. Converted X11 to new keyboard state tracking design.
This new design is simpler.  For keyboard support, clients need only
implement 4 virtual methods on a class derived from CKeyState and
one trivial method in the class derived from CPlatformScreen, which
is now the superclass of platform screens instead of IPlatformScreen.
Keyboard methods have been removed from IPlatformScreen, IPrimaryScreen
and ISecondaryScreen.  Also, all keyboard state tracking is now in
exactly one place (the CKeyState subclass) rather than in CScreen,
the platform screen, and the key mapper.  Still need to convert Win32.
2004-03-21 20:01:41 +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 612a2054e6 Updated Makefiles and win32 projects and removed dead classes. 2004-02-15 18:12:35 +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 901a76df0d Minor cleanup. 2004-02-14 16:30:27 +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 618aa7fedd Removed most HTTP stuff. It doesn't seem like the appropriate
choice for server control.  May later provide some other means
for controlling the synergy server remotely.
2004-02-01 20:56:52 +00:00
crs 47ca409ff9 Merged primary and secondary screens into one class. 2003-09-02 22:05:47 +00:00
crs be07a171cc Removed ignoreNumLock option. It doesn't really seem to be
necessary.
2003-07-13 18:14:35 +00:00
crs faff28de44 Added ignoreNumLock boolean per-screen option. When true, NumLock
is ignored on that client (it has no effect on the server).  This
is useful for keyboards that don't have separate number pads and
the user often uses the client's keyboard directly, when turning
on NumLock interferes with normal typing.
2003-07-12 18:13:36 +00:00
crs b9193ae1bb Fix for new template syntax. 2003-07-05 17:04:06 +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 51919a50e6 Added workaround for when XTest is unaware of Xinerama. When that's
true, faking a mouse motion outside screen 0 is clamped onto screen 0.
When the workaround is enabled, we use XWarpPointer() instead of an
XTest fake motion.  This isn't perfect but the only real fix requires
patching XTest.
2003-05-17 13:44:24 +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 ed439ec33c Added global configuration option to disable screen saver
synchronization.
2003-05-03 14:38:36 +00:00
crs 42ea6306f6 Fixes to previous checkpoint. Non-ascii keys seem to work correctly.
Still not supporting key composition on X11.
2003-04-27 18:05:32 +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 368d8cae39 Now allowing screen names with underscores. 2003-04-16 20:05:00 +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 aef50800e3 Added global options to CConfig (needed for heartbeat option). 2003-02-22 16:41:03 +00:00
crs 366537dc22 Added support for heartbeat global option. 2003-02-22 16:20:23 +00:00
crs 5f164375d4 Changes to support remapping modifier keys on clients. 2003-02-22 15:03:31 +00:00
crs 6b3e451b83 Added ability to set screen options from the windows launch dialog. 2003-01-25 13:34:51 +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