Commit Graph

47 Commits

Author SHA1 Message Date
crs c3649df304 added command line parsing, restartability, and daemonizing to
client.  broke win32 stuff though.  also moved version and
copyright constants into a new file and renamed protocol
version constants.
2002-06-04 11:06:26 +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 869617a34a now ignores key if there's no key mapped for a required modifier.
was asserting (on the wrong expression).
2002-06-02 19:04:24 +00:00
crs 1d3807cb0e added SIGINT and SIGTERM handling to unix client and server.
either signal causes the main thread to be cancelled.  added
necessary code to make main thread cancellation clean up
nicely.
2002-06-02 18:49:35 +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 536eb52337 added methods to CLog for getting the outputter, getting and
setting the priority filter, and added code for thread safety.
added code to apps to enable thread safety in CLog.
2002-05-31 14:25:26 +00:00
crs 7cf20d9ad0 removed getEventMask() and fixed some comments. also now using
toggle key states in updateModifiers().
2002-05-27 18:28:06 +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 24f5b66cf3 added support for mouse wheel on X. 2002-05-23 15:50:38 +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 a5ae8011e2 win32 changes. replaced log dialog hack with a windows console
window.  now attaching thread input queues as necessary. shifted
code around so toggling toggle keys is immediately reflected by
secondary screen's keyboard.  now setting extended key flag for
keys that need it.  fixed handling of shift + caps-lock.  added
handling of keys that should distinguish between left and right
but don't.  fixed get/set of active window on leave/enter of
primary screen.  replaced 1x1 primary window with a full screen
window to work around a problem with losing key events.  changed
calculation of mouse move deltas.
2002-05-22 17:01:17 +00:00
crs cda243ac76 fixed parameter type for socket port. 2002-05-22 16:51:59 +00:00
crs 0cbd6b07a2 fixed NULL dereference. 2002-05-22 16:42:48 +00:00
crs f8f1fb4041 replaced True/False with true/false when assigning to m_repeat.
also should now work if the first element of a modifier
keymapping is 0.  that won't normally be the case but xmodmap
was doing weird things on grace.  if the first element is 0
it'll try the second element.  if that's also zero then that
modifier will be ignored.
2002-05-05 19:52:03 +00:00
crs 7ebaab42e0 fixes for win32 keyboard. 2002-05-05 19:38:09 +00:00
crs 2d7e3e8a61 fixed caps-lock handling. 2002-05-04 19:43:20 +00:00
crs cd3e49a9a9 checkpoint. fixing up handling of half-duplex num-lock. 2002-05-04 18:31:54 +00:00
crs 8de2696369 checkpoint. changed when toggle keys toggle (now always on
release).  must see if this works.
2002-05-04 18:09:02 +00:00
crs 4d11079095 Fixes for win32 key handling. 2002-05-04 18:08:22 +00:00
crs f3c70dc300 fixed handling of shift + caps-lock. those two modifiers should
cancel out if the keysym is subject to case conversion, but not
otherwise.  also added logging of key lookup code.
2002-05-04 11:23:11 +00:00
crs b19fdd86cf fixed handling of shift+tab on a system that can map ISO_Left_Tab.
now tries to map ISO_Left_Tab without shift first then falls back
to Tab (note that if ISO_Left_Tab can be mapped but requires a
modifier then the modifier will be added).  also changed attempt
to map ISO_Left_Tab as a backup to Tab to request the shift
modifier whether or not the primary screen requested it.
2002-05-03 12:23:48 +00:00
crs afa14b67c2 fixed handling of ISO_Left_Tab when that is not mapped to a
keycode by mapping it to tab with shift pressed.
2002-05-03 12:14:55 +00:00
crs ab62dec0f7 removed attempt to make release/press of a repeating key use
the same server time.  was getting what appears to be deadlock
but not sure why.
2002-05-03 11:49:30 +00:00
crs 5641a875c1 checkpoint. made changes to support key autorepeats on X. 2002-05-03 11:26:44 +00:00
crs f536e1cece added fallback for missing numpad movement keys (if there's no
mapping for those keys then the non-keypad versions are tried).
2002-04-30 18:30:05 +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 56877bcc7d Added logging and handling of "half-duplex" caps-lock key. 2002-04-30 16:25:29 +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 3ca72b35f3 Added some validation of protocol message parameters. 2002-04-29 14:25:24 +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 6299eea7b6 Added missing event mask. 2002-04-29 13:49:56 +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 79b4d333fa Fixed caps-lock and num-lock behavior. It seems to work okay
now but did notice one problem:  when powerbook is primary and
num-lock is on the keypad works fine until shift is pressed
(and released);  after that the keypad only works while the
shift key is down.
2002-04-26 20:14:46 +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 ff9c3ba7af checkpoint. implementing clipboard owner in x windows. 2001-11-25 22:20:41 +00:00
crs f395bc6e12 executables are now built into a common area on unix (and they
already were on win32).
2001-11-25 18:42: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