Commit Graph

57 Commits

Author SHA1 Message Date
crs beda89fd53 changes to add command line arguments. also added automatic
restarting and daemonizing on unix.  daemon sends log messages
to syslog.  unix now reads config file from file named on
command line;  if no command line arg then uses effective
user's config file and if that's not there it finally tries
/etc/synergy.conf.  if there are no screens configured then
one is added for the primary screen.  broke some startup
stuff on win32.

also now timing out if X primary screen can't grab the mouse
and keyboard.  the server will just give up trying to switch
screens.  the grabs will fail is some other app has a grab
and won't release it.  note that kdm grabs the keyboard for
the duration that the login window is displayed, effectively
disabling synergy.
2002-06-03 18:53:18 +00:00
crs 1cbdaee31b added better handling of X server disconnecting unexpectedly.
the apps still exit but they do it in a mostly controlled
manner.  in particular, the server threads except the one
processing primary screen events will terminate gracefully.
this will be important should the server ever allow HTTP
clients to rewrite the configuration file.

note that X makes it effectively impossible to continue once
the X server disconnects.  even if it didn't it would be
difficult for synergy to recover.  users will have to add
synergy to the X display manager's startup script if they
expect the server to be restarted.  alternatively, we could
add code to fork synergy at startup;  the child would do
the normal work while the parent would simply wait for the
child to exit and restart it.
2002-06-03 13:45:30 +00:00
crs 1e988b3839 make sleep shorter in poll/sleep getEvent() loops. 2002-06-02 21:35:20 +00:00
crs a541ebc557 removed poll/sleep code to improve performance. 2002-06-02 21:03:38 +00:00
crs d2135af0d9 fixes, mainly for windows. first, had to add a notification from
CServer to the primary screen when the configuration changes so it
can make necessary adjustments (the win32 primary screen must tell
the hook dll about the new jump zones).

changed includes of some std c++ library files to go through
our own include files.  these wrap the include with stuff to
keep vc++ quiet when compiling at warning level 4, which is
what it does now.  it also works around missing <istream> and
<ostream> on g++2.96.

added missing std:: where necessary.  g++ doesn't really support
namespaces so it lets references without the namespace slip
through.

added workaround or fix.  not sure if istringstream::str(string)
should reset eofbit.  it does on g++ but does not on vc++.
added clear() after str() so it works either way.

added low-level keyboard hook to win32.  if available (it's only
available on NT SP3 and up) it allows us to catch and handle
alt+tab, alt+esc, ctrl+esc, and windows key hot keys.  i think
that leaves only ctrl+alt+del and accessibility functions
uncaught on those systems.
2002-06-01 19:26:11 +00:00
crs 793c968f00 server now rejects clients that are not in the configuration.
added a protocol message to indicate this.
2002-05-31 18:18:29 +00:00
crs 8cb0302665 updated win32 clipboard to match new model. 2002-05-27 18:55:51 +00:00
crs 189537b8b9 removed getEventMask() from primary screen. added a class to
CXWindowsUtil that installs/uninstalls an X error hander.
using that in primary screen, clipboard, and util to ensure
that certain errors don't kill the app.
2002-05-27 18:30:13 +00:00
crs f8eb775278 changed lesstif hack to only apply to the CLIPBOARD selection.
apprently the PRIMARY selection must follow the ICCCM protocol
correctly.
2002-05-27 17:05:34 +00:00
crs 56d7271bc1 added missing files from previous submit. 2002-05-27 16:51:07 +00:00
crs 854d2c7fbf checkpoint. changed clipboard model. the clipboard can only
be accessed now between open()/close().  ownership of the
clipboard is asserted via the empty() method.  this parallels
the win32 model (but the win32 code hasn't been updated yet).

refactored X11 clipboard code.  moved the bulk of it into
CXWindowsClipboard and moved some comment event handling into
CXWindowsScreen.  changed how requests are processed into a
hopefully easier to understand model.  added support for getting
clipboard from and sending clipboard to motif (or at least
lesstif) clients.  sending to lesstif required a hack to work
around an apparent bug in lesstif.
2002-05-27 16:22:59 +00:00
crs 5fc87baa0f added screen locking support to win32. added support for
resolution changing (only semi-supported on X because that
has no means for resizing screen anyway).  also fixed some
clipboard problems on win32.
2002-05-24 17:54:28 +00:00
crs 34c587e864 added support for locking to a screen when the sroll lock is
toggled on or when any key or button is pressed.  fully
implemented on X but stubbed out for now on win32.
2002-05-24 14:37:12 +00:00
crs 13eee14232 server no longer asserts when a client connects with a name that's
already in use by another client.  also added reporting of errors
from the server to clients so clients can report meaningful
messages to users.
2002-05-23 14:56:03 +00:00
crs 6611ea871e changed structs to classes. there should be no more structs now. 2002-05-23 14:04:35 +00:00
crs 8df02380e5 removed unnecessary call in screen class, added logging calls
in clipboard class, and added another cast in protocol util
to avoid warning on win32.
2002-05-22 17:08:37 +00:00
crs 570d85c842 Indentation change. 2002-05-02 11:44:21 +00:00
crs eb2a202834 Was trying to avoid sending clipboard if timestamp wasn't
changed but clipboard owners may not update that timestamp
when the selection is changed.  Disabled the timestamp check.
2002-05-01 16:30:20 +00:00
crs f052d126c0 Added more checks to avoid sending unchanged clipboard data.
Still takes too long to query the clipboard owner for info
(maybe 1/10th second) but not sure why or if that can be
improved.
2002-05-01 16:17:57 +00:00
crs f2e83e607d checkpoint. turned off nagle and send buffering. also
added test to skip clipboard conversion if a previous
conversion from that owner failed.
2002-05-01 15:31:47 +00:00
crs b279c80608 checkpoint. now sending toggle modifier state when entering
a screen.  this allows the secondary screen to set it's
modifier state to match the primary screen's state.  this is
not strictly necessary since each keystroke should adjust the
modifier state as needed to get the right result.
2002-04-30 17:48:11 +00:00
crs dc19570621 Fixes to get win32 client and server up to date. 2002-04-30 16:23:03 +00:00
crs ea6b347b18 Indentation changes. 2002-04-29 14:40:01 +00:00
crs 32b085e42e Shortened timeout on waiting for clipboard response. 2002-04-29 14:12:48 +00:00
crs 6a9a180688 Made event selection a little more robust. Also fixed failure
to marshall clipboard data when updating primary clipboards.
2002-04-29 14:08:48 +00:00
crs c5f6b34d85 checkpoint. changed protocol to better handle clipboards. now
sending a sequence number with enter messages.  screens use that
sequence number in clipboard grab and data messages.  the server
uses the sequence number to order messages across clients.  also
changed secondary screens to send clipboard updates on leaving
(or when grab occurs when not active) instead of on a query from
the server.  primary effectively does the same.  the query
message has been removed.
2002-04-29 13:31:44 +00:00
crs 3be014f8f5 Clipboard improvements. Still not working right. Nedit
doesn't work at all but at least now there's a timeout to
prevent synergy from hanging waiting on a reply.
2002-04-28 00:46:15 +00:00
crs d1ca5295d1 Added more debug levels and moved some annoying debug messages
to those levels.  Default log level is now DEBUG for debug
builds and INFO for release builds.
2002-04-27 18:49:03 +00:00
crs 9ac0473d5a checkpoint. changed CProtocolUtil::readf() to store 1 and 2
byte integers into pointers to 1 and 2 byte integers.  was
always assuming pointers to 4 byte integers.
2002-04-27 18:06:40 +00:00
crs f9170eb139 Added support for multiple clipboards. This is mainly to
support both PRIMARY and CLIPBOARD selections on X windows.
2002-04-27 14:19:53 +00:00
crs 419eadfaf9 changed processing of key events in X. secondary screen now
activates/deactivates modifiers as necessary to get a keycode
interpreted as the expected keysym.  still some work and
testing to do on this.
2002-04-26 17:38:01 +00:00
crs 7d9fa41514 added handling for DestroyNotify of clipboard requestors. 2002-04-25 10:43:53 +00:00
crs f63d0e4ada checkpoint. improvements to clipboard transfer on X windows.
not detecting a change to clipboard when synergy window isn't
the owner (since there's no event for this;  we'll have to
check when we leave the screen i guess).  large transfers
don't seem to work.
2001-11-26 22:36:51 +00:00
crs 9d83cfdbe2 checkpoint. testing clipboard transfer on X windows. 2001-11-26 22:09:53 +00:00
crs ff9c3ba7af checkpoint. implementing clipboard owner in x windows. 2001-11-25 22:20:41 +00:00
crs c19022e965 fixed function signature. 2001-11-25 18:44:13 +00:00
crs f15c9df85b added platform independent clipboard transfer stuff
clipboard owner support (MS windows done, X windows partial)
added key transfer on ms windows
mutex fixes in CClient (had race conditions)
faster debug output in ms windows
changed temporary screen name to "secondary"
network fixes on ms windows (poll returned wrong result)
fixed transparent cursor on ms windows
2001-11-25 18:32:41 +00:00
crs 3f6146b15f checkpoint. merging win32 code. server on X is currently broken
and client probably is.
2001-11-19 00:33:36 +00:00
crs 51505783aa moved client and server files into their own respective
directories.
2001-11-18 23:14:28 +00:00
crs 6a223b7da5 added preliminary support for getting the X selection. 2001-11-13 23:34:12 +00:00
crs 303734a438 fixed clamping when mapping to a different screen when beyond
bottom or right of source screen.
2001-11-11 21:27:36 +00:00
crs cf4e1fd9ca factored common X windows screen stuff into a common base class. 2001-11-11 21:15:30 +00:00
crs ef3149cead removed unnecessary global scoping operators. 2001-10-25 22:17:17 +00:00
crs dbdf20e804 changed hider window to move underneath mouse when leaving the
screen.  this makes it so if the mouse is moved locally, it'll
reappear where it was last seen.
2001-10-25 22:09:27 +00:00
crs c5df2edd14 changed some method names and removed warpCursor() from
secondary screen interface.
2001-10-25 21:40:29 +00:00
crs 5b1826a638 now handling disconnect of secondary screen that has the cursor
by jumping back to the primary screen (without trying to notify
the now disconnected secondary screen).  also fixed blown assert
in mapPosition().
2001-10-24 23:29:29 +00:00
crs 066910fab8 made calls to X thread safe. 2001-10-24 22:33:24 +00:00
crs 20c7aca1db added cursor hiding. 2001-10-23 22:41:46 +00:00
crs b7533aea2a fixed blown assert trying to find neighbor when there was none. 2001-10-23 21:13:08 +00:00
crs cfdf6bd73a fixed handling of stream ownership. 2001-10-21 00:21:21 +00:00