Commit Graph

44 Commits

Author SHA1 Message Date
crs 52b60d5175 refactoring. refactored stuff in client (with changes to server
as necessary).
2002-07-12 20:41:23 +00:00
crs ef7fe1f283 checkpoint. making win32 and X primary screen code more similar
in order to share code later.
2002-07-11 18:58:49 +00:00
crs feeb15a08d applied refactoring to win32 code. 2002-07-11 13:13:37 +00:00
crs 3468f3d503 more refactoring. 2002-07-10 21:22:28 +00:00
crs f90076938b removed IPrimaryReceiver in favor of IServer, which required a few
minor changes to support IPrimaryReciever's functionality.  this
does mean that the IPrimaryScreen class will be calling some
methods with dummy arguments.  those are documented in
CPrimaryClient.
2002-07-10 14:15:17 +00:00
crs 64232c7854 updated to new automake and refactored server stuff. the server
now speaks to the primary screen and secondary screens almost
everywhere the same way through an IClient interface;  only
special primary screen calls are accessed through a different
interface, the CPrimaryClient interface.  this simplifies the
server since it no longer needs to test whether the active screen
is the primary or a secondary in most cases.

the server no longer speaks directly to the primary screen;  all
that goes through the CPrimaryClient, which often just forwards
the call.  the primary screen no longer speaks directly to the
server either, again going through the CPrimaryClient via a
IPrimaryReceiver interface.

CServerProtocol classes have been replaced by CClientProxy
classes which are very similar.  the name makes more sense
though.
2002-07-09 21:22:31 +00:00
crs 217313e013 fixed spurious mouse motions when entering/leaving primary
screen on X11.
2002-07-03 16:25:36 +00:00
crs 1377882a9f fixed handling of jumping to primary when screen saver starts
and back to secondary when it stops.  also now redirecting
keyboard input to root window when screen saver starts;  this
allows the user to type in the lock dialog and also effectively
discards any input used to deactivate the screen saver.
2002-06-23 23:24:22 +00:00
crs a5391a0a1d checkpoint screensaver changes. now handling xscreensaver
dying and restarting or starting after synergy does.  also
now disabling the screen saver on the client.  next step:
win32 support.
2002-06-23 15:43:40 +00:00
crs 95a1ce8798 CXWindowsUtil::CErrorLock wasn't XSync()'ing the display before
installing and uninstalling the new error handler, causing
errors before the lock to be caught and errors during the lock
to not be caught.  had to add Display* as argument to c'tor.
2002-06-22 19:47:27 +00:00
crs 504bfa2def checkpoint. adding screen saver support. only on X so far
and untested.  also some known problems:  not detecting an
xscreensaver started after us and not detecting built-in
screen saver activation (not sure if we can without using
ugly extensions).
2002-06-22 19:20:21 +00:00
crs 6c6afcc8cb added comments. 2002-06-22 13:55:45 +00:00
crs 4f418e015e work around for bug with mouse driver on lombard powerbook. 2002-06-20 09:19:55 +00:00
crs a16e7217ce fixed bugs in mouse motion. wasn't taking care to capture all
motion events relative to the previous mouse position.  for
example, if two mouse events arrive, the first at x+1,y and
the second at x+2,y, we used to compute deltas of 1,0 and 2,0
instead of 1,0 and 1,0.  that's fixed.  also worked around a
bug (probably) in windows that caused a motion event after a
SetCursorPos() to be lost or reported one pixel off from the
correct position.  now using mouse_event() which doesn't
have that problem.  also fixed calculation of normalized
coordinates for mouse_event() when there are multiple
displays.
2002-06-19 20:24:35 +00:00
crs bebb63ac53 checkpoint. initial support for multiple displays on win32. 2002-06-19 17:03:29 +00:00
crs 9c7e863d77 checkpoint. more conversion to automake. 2002-06-19 11:23:49 +00:00
crs fe16546a1d formatting changes. 2002-06-17 13:31:21 +00:00
crs 62519b19fe indentation and other formatting changes. also cleaned up
#includes.
2002-06-10 22:06:45 +00:00
crs 172fc7e5b3 now allowing a screen to be its own neighbor to allow wrapping.
also no longer warping mouse to 0,0 when setting server screen
info.  that was causing the mouse to jump if the server screen
had itself as its left or top neighbor (directly or indirectly)
once a screen could be its own neighbor.
2002-06-10 10:08:36 +00:00
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 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 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 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 24f5b66cf3 added support for mouse wheel on X. 2002-05-23 15:50:38 +00:00
crs 2dad59a027 checkpoint. added half duplex for num lock. 2002-05-04 18:33:48 +00:00
crs 5641a875c1 checkpoint. made changes to support key autorepeats on X. 2002-05-03 11:26:44 +00:00
crs 59c5e4bf13 Fixed uninitialized variable when computing toggle mask. Also
reduced priority of some mouse motion log messages.
2002-05-01 14:36:52 +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 ea6b347b18 Indentation changes. 2002-04-29 14:40:01 +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 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 242109d430 Added hack to handle "half-duplex" caps-lock key on powerbook.
That key only reports press when pressed and released when
caps-lock is activated and only reports release when pressed
and released when caps-lock is deactivated.  I don't know of a
way to detect this behavior so it may have to be configured by
the user.  The code assumes normal behavior;  will have to add
code to set the flag (perhaps from a user configuration).
2002-04-26 20:12:55 +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 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
Renamed from synergy/CXWindowsPrimaryScreen.cpp (Browse further)