Commit Graph

374 Commits

Author SHA1 Message Date
crs 4d2d4a2171 Fixed type cast warnings. 2004-05-01 08:54:42 +00:00
crs 54b3884eba Removed use of mbrtowc, wcrtomb, and mbsinit. Many platforms
didn't support them and the emulated versions were just as good
except for a performance problem with excessive locking and
unlocking of a mutex.  So this also changes IArchString to
provide string rather than character conversion so we can lock
the mutex once per string rather than once per character.
2004-04-13 19:39:04 +00:00
crs e1027eeb3a More changes for MSYS/MinGW builds. Added makefile for launcher.
Still need hook library and resource compiling.
2004-04-11 19:43:16 +00:00
crs bf2879724f Preliminary support for MSYS/MinGW builds. Doesn't yet build
CSynergyHook as a DLL and does not compile or link in the
resources for the binaries.
2004-04-11 19:15:09 +00:00
crs 530be3ff9d Updates to support OS X. This improves support for building on
multiple systems with automake, with X Windows and Carbon window
system APIs supported.  It's also a starting port for supporting
win32 builds using mingw.  OS X support is incomplete;  the tree
will compile and link but the binaries will not function.
2004-04-11 14:58:08 +00:00
crs 619dd75f0d Added missing initialization of mutex attribute call. 2004-04-06 22:09:38 +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 6d6ebf7926 Made hook debug logging print at DEBUG1 rather than INFO level. 2004-04-05 21:08:49 +00:00
crs 083607345a Removed DEPTH, VDEPTH, and VPATH from makefiles. 2004-04-04 12:12:32 +00:00
crs ef908bf0bc Changed version to 1.1.5. 2004-04-04 12:12:30 +00:00
crs d1a60e848e Reverted task bar code to 1.0.15 version. That used a window in
its own thread for handling messages.  It seems to fix most of
the task bar bugs but there's still an hourglass cursor on NT
when using the popup menu.
2004-03-31 22:15:13 +00:00
crs 4576b30c37 Fixed lookup of hosts by name on win32. 2004-03-31 22:14:15 +00:00
crs 4805453190 Fixed failure to initialize double tap and wait to switch timeouts. 2004-03-31 22:12:53 +00:00
crs 610518104b Fixed crash bug in CKeyState. Would deference bogus pointer in
isModifierActive if there's an unmapped toggle modifier.
2004-03-30 18:55:58 +00:00
crs ceb654246c Changed version to 1.1.4. This time changing the version before
making any other changes.
2004-03-30 18:54:56 +00:00
crs cfb082f306 Added ISO_Level3_Shift as a synonym for Mode_switch. I've no idea
if this will work as hoped but I've seen documentation that XFree
4.3 uses ISO_Level3_Shift rather than Mode_switch.
2004-03-28 14:53:01 +00:00
crs 97046541b9 Fixed keyboard handling on windows 95 family. 2004-03-28 14:07:58 +00:00
crs e50146119f Updated makefile to reflect renaming of platform files for win32. 2004-03-28 14:07:37 +00:00
crs 0f7fa2dfd9 Fixed windows 95 family screen saver stuff. 2004-03-28 14:06:40 +00:00
crs bf7643faab Changed debug logging of key IDs to use hex. 2004-03-28 14:05:52 +00:00
crs d2f4cbf002 Fixed bugs in installing per-user startup programs on windows 95
family.
2004-03-28 14:05:31 +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 ab11ebea01 Fixed handling of reading strings from the registry. This was
broken when support for binary data was added.  The terminating
NUL was included in the string as a character (that's in addition
to the terminating NUL added by std::string).
2004-03-26 20:59:21 +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 19559d4b4e Updated keyboard handling on win32. Still needs some work to
avoid shadowing key state in multiple places.  Also got locked
to screen and reported key appeared to be wrong.
2004-03-17 20:59:25 +00:00
crs 20ba10bfa8 Changed how key state is tracked on X11. Now updating key state
on every key press and release so we don't have to updateKeys()
in isLockedToScreen().  However, if any key appears to be down
we still call updateKeys() to double check that it's really down.
If not we note the spurious lock and don't lock to the screen.
2004-03-14 17:55:53 +00:00
crs 6f19fcfe39 Fixed doxygen formatting error. 2004-03-14 17:50:37 +00:00
crs 03dc45972b Improved handling of active window on win32. Synergy no longer
takes activation so the previously active window doesn't pop to
the top of the window stack when it regains activation.  One
drawback of this is that the mouse cursor isn't shown when
a window (other than synergy's) is activated.  However, synergy
does detect mouse motion as before and shows the cursor when it
sees any.
2004-03-13 19:01:27 +00:00
crs 83713c6235 Fixed error in previous submit. 2004-03-13 18:58:20 +00:00
crs 12fa99aee0 Fixed handling of handshake complete. Was posting an event for it
but making direct calls for other messages from the server.  This
could cause messages to be handled out of order.  Now making a
direct call for handshake complete.
2004-03-13 17:16:24 +00:00
crs 8c1af9d53f Fixed win32 taskbar icon event handling. Wasn't responding to
messages sent via SendMessage (rather than PostMessage).
2004-03-13 17:14:32 +00:00
crs a6e858a208 Added win32 support for power management. 2004-03-13 17:13:55 +00:00
crs a1c807ba67 Added support for DPMS in X11 screen saver. DPMS is the extension
that allows you to power down the display.  Previously, synergy
would not power on the display if DPMS was enabled and activated
and xscreensaver was not running.  It also wouldn't disable DPMS
so the display would power down normally on a synergy client if
there was no input activity.
2004-03-10 22:03:01 +00:00
crs 6c7039490d Added check for inet_aton and a simple implementation for platforms
that are missing it.
2004-03-10 20:35:03 +00:00
crs 3920c63af6 Removed dependency on X11/XF86keysym.h. There are several versions
of that file in existance, not all of which have all the symbols we
require and none of which provide any convenient means of telling
what groups of symbols they define.
2004-03-08 21:18:36 +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 f068232643 Typecasting fix to compile on old solaris. 2004-03-08 20:45:53 +00:00
crs a27c6ad2c6 Server now disables jump zones when scroll lock is active. 2004-03-06 16:20:08 +00:00
crs 5593573182 Fixed processing of events. Was waking up on a sent (rather than
posted) message but then blocking in GetMessage() which handles
the sent message directly.  No longer blocking on sent messages.
2004-02-29 21:34:30 +00:00
crs ffa966747b Fixed handling of winsock connect event. Was always immediately
indicating socket had connected.
2004-02-29 21:33:20 +00:00
crs 4ac756fc28 Fixed cursor hiding on win32. Still fails occassionally. 2004-02-29 21:32:00 +00:00
crs 8f083a2e65 Fixed comment. 2004-02-29 17:36:32 +00:00
crs b8606412d6 Switched to doxygen comments. 2004-02-29 17:29:01 +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 1ccb92b888 Fixed BSD unblockPollSocket(). Was signaling to break out of
poll() but there was a race condition where the thread trying
to unblock poll() could send the signal before the polling
thread had entered poll().  Now using a pipe and polling on
that and the client's sockets, and just writing a byte into
the pipe to unblock poll.  This persists until the next call
to poll() so we might force poll() to return once unnecessarily
but that's not a problem.  This change makes the BSD code
similar to the winsock code, which uses a winsock event instead
of a pipe.
2004-02-29 16:48:22 +00:00
crs d6ec331b09 Made all arch sockets non-blocking. 2004-02-29 16:11:17 +00:00
crs 82dffeb498 Generalized signal handling. Now handling SIGHUP in addition
to SIGINT and SIGTERM.  Setup SIGHUP to reload the server's
configuration.
2004-02-28 17:49:29 +00:00
crs 9f7e909361 Fixed incorrect accumulation of newlines in log. 2004-02-28 16:06:00 +00:00
crs 3dea8f8c5d Now using first set options message as end of handshake. 2004-02-28 16:00:54 +00:00
crs 1a9ddb9110 Added missing files. 2004-02-28 12:30:52 +00:00
crs 63db68aee5 Added missing file. 2004-02-28 12:24:47 +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 c44c18bfdc Refactored event queue. The event queue is now separated from the
buffer that holds the events and generates system events.  This
allows us to switch in/out a platform specific event handler as
necessary without losing our timers and handlers.
2004-02-08 17:07:11 +00:00
crs 3bcdf139a7 No longer sending incorrect disconnect events in read() and
removed redundant sending of disconnect event in close().
2004-02-08 16:51:45 +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 4c7e524896 Checkpointing centralized event queue stuff. Currently have:
an event queue and events, TCP sockets converted to use events,
unix multithreading and network stuff converted, and an X Windows
event queue subclass.
2004-01-24 16:09:25 +00:00
crs fa215f1b13 Merged changes from 1.0 branch, including Japanese keyboard
support (thanks to Kazuhide Takahashi).
2003-09-28 11:58:38 +00:00
crs 175843b4fb Changed server side of win32 to send ctrl+alt+<key> if the key
doesn't map to anything via AltGr.  This is an improvement over
the previous code which would simply discard the key but it
still behaves slightly differently than pressing ctrl+alt+<key>
on the server:  if that combination is a hotkey on the server
then the hotkey is performed, even if the combination is also
a valid AltGr combination;  on the client, we'll get the AltGr
combination in preference to the hotkey.
2003-09-08 19:42:00 +00:00
crs f4d7ea3d7b Fixed button mapping. Was returning the physical button instead of
the logical button, but XTest wants the logical button.  Apparently,
the XTest implementation on my mac laptop has it backwards.
2003-09-07 13:08:30 +00:00
crs 6d3c536717 Fixed potential failure to use synergy's keyboard layout when
using low-level keyboard hooks, fixed handling of the global
keyboard layout dead key buffer, fixed identification of dead
keys, fixed synthesis of AltGr (now using right-alt instead
of left-alt), now using VK_DECIMAL for Separator key, fixed
bug where an unmappable key was treated as virtual key 0xff,
and added support for shift-space (shift was being discarded).
Also fixed failure to hide cursor when leaving primary screen
and added support for handling PrintScreen key.
2003-09-06 23:17:41 +00:00
crs 80f3998398 Changed name-to-address translation to only use IPv4 addresses
and to only copy as much address as fits in sockaddr_in.sin_addr,
in case hostent.h_length is wrong.
2003-09-03 21:54:18 +00:00
crs 33e359a384 Fixed failure to unlock mutex in CXWindowsScreen::mainLoop()
when returning due to a quit event.
2003-09-03 21:49:57 +00:00
crs 8395f69899 Now leaving client screen or entering server screen if necessary
when disabling the screen.
2003-09-03 21:26:52 +00:00
crs a237cbacdb Fixed suppression of auto-repeat for keys that don't auto-repeat.
Had forgotten to query the auto-repeat per-key mask.
2003-09-03 21:22:25 +00:00
crs 9311250c22 Fixed uses of X11 display without mutex held. 2003-09-03 21:21:22 +00:00
crs 809a347333 Removed heap allocation when polling sockets. 2003-09-02 22:06:07 +00:00
crs 47ca409ff9 Merged primary and secondary screens into one class. 2003-09-02 22:05:47 +00:00
crs 4fea7719f3 Merged changes from 1.0 branch. 2003-09-02 21:41:00 +00:00
crs 2f9cdfd1b2 Integrated fixes from 1.0 branch. 2003-08-06 21:09:25 +00:00
crs 345de4cd11 Integrate fixes from 1.0 branch. 2003-08-03 21:24:45 +00:00
crs 221628fd84 Checkpoint refactoring. CSecondaryScreen now does the work common
across platform secondary screens.  X11 screen was compiled and
tested but not the win23 screen.  Will next change inheritance
hierarchy.
2003-07-26 13:41:41 +00:00
crs b59e105bc4 Changed version to 1.1.3. 2003-07-17 21:17:08 +00:00
crs e1985f52c9 Fixed handling of a dead key followed by space on win32 and X11.
A dead key followed by space should convert the dead key to a
regular character.
2003-07-17 21:16:58 +00:00
crs 99792b13a5 Changed version to 1.1.2. 2003-07-16 22:38:54 +00:00
crs 0325de2e12 Fixed handling of some non-ASCII but directly mapped characters
on win32.  The o, a, and u with diaeresis in the german keyboard
mapping are examples.
2003-07-16 22:38:43 +00:00
crs b949e108a0 Changed version to 1.1.1. 2003-07-16 21:41:09 +00:00
crs 9c4267ed11 Fixed handling of shift/ctrl/alt on special keys on win32 server. 2003-07-16 21:40:57 +00:00
crs 5488b77d61 Fixed handling of some keystrokes on win32. Pressing a dead key
and then space should convert the dead key to a non-dead key but
previous the key was discarded.  Fixed that but VkKeyScan() fails
in this case so added special case to fix that (assuming AltGr is
required).  VkKeyScan() can return the wrong result for characters
that have more than one virtual key mapped to them.  AltGr+9 (^)
on the French layout has this problem.  Now detecting that problem
and using the current keyboard state to decide if AltGr is
required.
2003-07-13 20:42:11 +00:00
crs be07a171cc Removed ignoreNumLock option. It doesn't really seem to be
necessary.
2003-07-13 18:14:35 +00:00
crs 745c5421be Changed XSync() to XFlush() in X windows secondary screen. This
doesn't appear to have any negative consequences and may prevent
synergy from freezing when some X client (probably the window
manager) grabs the server.
2003-07-13 16:57:08 +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 476faea8ab Prevent INFO level log messages when client is repeatedly trying
to connect.  This prevents a log from filling up while the client
can't connect for no useful reason.  Also removed --camp option
and cleaned up handling of client connection.  Users must now use
--restart instead of --camp.
2003-07-12 17:57:31 +00:00
crs f27fd7b021 Changed windows server to release ctrl and alt keys when it's
sending a key that requires AltGr.  That's because AltGr *is*
ctrl and alt but AltGr should be seen on clients as mode
switch without the ctrl and alt.  I can't think of a better
way to do this other than to not send modifier keystrokes to
the clients at all.
2003-07-08 18:40:46 +00:00
crs c325b923ea Change version to 1.0.11. Skipping version 1.0.10 because there
have been too many major changes since 1.0.8.  A new experimental
release will provide a stable starting point for testing.
2003-07-05 17:06:18 +00:00
crs 2e741b7d96 Fix to avoid warping mouse until client successfully connects to
the server.
2003-07-05 17:05:12 +00:00
crs 28427a0e9b Keyboard fixes on win32. 2003-07-05 17:04:26 +00:00
crs b9193ae1bb Fix for new template syntax. 2003-07-05 17:04:06 +00:00
crs 8f9cc6e476 Minor X11 keyboard code cleanup. Also now handling KeyPress with
keycode == 0 generated by XFilterEvent() by using the keycode from
the previous KeyPress.
2003-07-05 14:49:08 +00:00
crs 47b480c0bc Compress sequential MappingNotify events into one. 2003-07-05 14:47:41 +00:00
crs 24fc257b3c Rewrote key handling on X11 client. This should fix problems
with applying the incorrect shift and mode switch modifiers to
some keycodes, such as getting Pointer_EnableKeys when pressing
shift with NumLock enabled.
2003-07-01 19:35:28 +00:00
crs 1eab99d70c Added support for input methods. Only handling IMs that don't
need a precompose area or status area.  This includes IMs that
do simple dead key composition.  This only changes the server.
The client still does not decompose a character it cannot
generate directly into the keysyms to compose the character.
2003-06-22 21:27:38 +00:00
crs 48965e2381 More fixes for X11 client keyboard handling. 2003-06-22 16:39:25 +00:00
crs a6f21bff90 More fixes for X11 client keyboard handling. 2003-06-22 16:39:02 +00:00
crs 92539f2ccc Checkpoint for improving X11 client key handling. Should prevent
unintentional Pointer_EnableKeys (i.e. generating NumLock press
and release around a shift press).
2003-06-22 15:01:44 +00:00
crs 5ca0e026ab Another ctrl+alt+del checkpoint. 2003-06-08 22:20:01 +00:00
crs 784ab183ae ctrl+alt+del emulation checkpoint. 2003-06-08 22:12:12 +00:00
crs 921526ab56 More DEBUG2 level debugging of keyboard handling. 2003-06-08 16:31:52 +00:00
crs f35a4541ee Added new file to Makefile. 2003-06-08 15:42:05 +00:00
crs 7464e99ba7 Fixed ctrl and alt keys on win32 clients. Was broken by a recent
fix to character handling.
2003-06-02 20:07:16 +00:00
crs c70ca5fbff Fixed errors in log strings. 2003-06-02 20:06:20 +00:00
crs 7b58356fc7 Added menu item on win32 tray icon to copy the last 1000 lines from
the log to the clipboard.
2003-06-02 20:06:03 +00:00
crs 5a65e36c99 Added workaround for broken clipboard owners that report the
type of TARGETS as TARGETS instead of ATOM.
2003-05-26 09:50:35 +00:00
crs af24ae6db7 No longer installing clibboard format for plain text on windows nt
family because nt automatically converts to and from the unicode
format.  This may fix text encoding errors when synergy puts
non-ascii text on the clipboard and other clients prefer CF_TEXT
to CF_UNICODE (which they should not because synergy lists
CF_UNICODE first).
2003-05-26 09:49:38 +00:00
crs 3fc87e7f87 Fixed loss of ctrl+alt+del key releases when the Winlogin desktop
is accessible (was already fixed when inaccessible).  This change
also ignores press and release of virtual key 0, which should never
happen but does according to one user.
2003-05-26 09:46:52 +00:00
crs 3bd3e7a17c Fixed unsigned compare against zero. Changed win32 priority to
maximum.
2003-05-21 21:22:14 +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 bdecca0bcc Attempt to improve key event synthesis. This change adds support
for dead keys and attempts to choose the correct code page for the
thread that will (probably) receive synthesized events.
2003-05-20 19:15:58 +00:00
crs 01fab82edc Reduced maximum priority in debug build. 2003-05-20 19:14:24 +00:00
crs 5484751997 Changed version to 1.0.9. 2003-05-17 20:58:48 +00:00
crs dc6652a21a Fixed getting locked to screen after ctrl+alt+del. Also fixed
cursor not being hidden on win32 server when on client screens
(which happened when using low-level hooks).
2003-05-17 20:58:27 +00:00
crs 3fc39eab4e Fixed previous fix. Was trying to avoid using XWarpPointer() when
warping on screen 0.  That just doesn't work if screen 0 is not at
0,0.  So now always use XWarpPointer() if there are multiple
xinerama screens and the appropriate option is enabled.
2003-05-17 14:03:32 +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 92ff58a5af Added support for old versions of XF86keysym.h that are missing
some expected #defines.
2003-05-17 12:48:32 +00:00
crs 6f22c4d550 Changed version to 1.0.8. 2003-05-10 17:27:05 +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 0e58bab76c Added support for 4th and 5th (non-mouse-wheel) buttons and
"Internet" keyboard keys.
2003-05-04 21:40:42 +00:00
crs ddfc05244b Removed accidental debugging code. 2003-05-03 14:54:03 +00:00
crs ed439ec33c Added global configuration option to disable screen saver
synchronization.
2003-05-03 14:38:36 +00:00
crs 65de05e3ec Forgot to restore global auto-repeat configuration on exit. 2003-05-03 13:57:52 +00:00
crs 3fc40e1939 Now warping mouse to center of screen when leaving client screens.
Some users requested this.  Also, the hider window is mapped before
warping the mouse so the active window shouldn't change if the focus
policy is point-to-focus.  Showing the window first can also reduce
the likelihood of seeing the cursor briefly in its hidden position.
2003-05-03 13:50:06 +00:00
crs af110dbce2 Now turning off auto-repeat when on an X11 client. This prevents
the server from auto-repeating fake events, which is undesired
since synergy will do the auto-repeating itself.  This also
disables auto-repeat on any keys locally configured on X11 to not
auto-repeat.  That's mainly to suppress auto-repeat on modifier
keys, which auto-repeat on win32 but not X11.
2003-05-03 13:28:21 +00:00
crs 75729cef46 Fixed a few win32 keyboard/mouse problems. First, the mouse hook
now captures non-client area mouse messages.  Previously, these
were ignored (because i forgot about them) and they caused all
kinds of problems because they weren't forwarded.  For example,
clicking on a window border would cause the window to start
resizing when the mouse came back to the server screen.  Moving
inside a title bar meant that the mouse wouldn't move on the
client screen.

Second, because non-client messages are now handled, the full
screen transparent window is no longer necessary to capture
input so it's never displayed.  (The window is still necessary
for clipboard ownership so it's still created.)  No transparent
window means no screen flashing.  It also means we don't have to
become the foreground and active window.  This plays better with
apps that minimize or restore when they're no longer the
foreground application/active window.

Third, fixed the low level keyboard hook to forward toggle key
updates, which it was neglecting to do.

Finally, keyboard and mouse input is always forwarded from the hook
to the primary screen handler which then shadows the current key
and mouse button state.  If we're using low level hooks then this
isn't really necessary and GetKeyState() always returns the right
info but without low level hooks it means we can just use the
shadow state.  It also means we don't have to show our window in
order to get the system's key state table up to date, fixing the
screen flash when checking for the scroll lock state.
2003-05-03 12:54:22 +00:00
crs 8d9134f93a Boosted priority of main synergy threads to be very high (highest
realtime priority).  After some testing it appears that anything
less than this can starve synergy in some circumstances, preventing
it from forwarding messages to clients.  This is a rather risky
change since synergy can now virtually take over a system if it
behaves badly.  This change only affects windows systems since
lib/arch of other platforms don't yet attempt to boost priority.
2003-05-03 12:37:03 +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 cf7ab3459d Added KeySym <-> Unicode mappings. Changed code to use those
mappings to better support Unicode key events.
2003-04-24 20:11:38 +00:00
crs 54cc95123b Win32 project configuration fixes. 2003-04-16 20:59:25 +00:00
crs 56bafdb0e2 Minor win32 fixes. 2003-04-16 20:59:14 +00:00
crs 368d8cae39 Now allowing screen names with underscores. 2003-04-16 20:05:00 +00:00
crs aeb3f760d0 Fixed incorrect initialization of an XMotionEvent. 2003-04-14 22:16:21 +00:00
crs 6a108ed2d5 Added workaround for apparent Xinerama bug when warping the pointer.
This should allow synergy to be used on a system using Xinerama to
create a single logical screen from multiple physical screens.
2003-04-14 22:15:56 +00:00
crs a4a08c3ce6 Removed periodic call to XForceScreenSaver() to prevent the built-in
screen saver from activating.  It was unnecessary since the built-in
screen saver is disabled as appropriate;  this call was just to
ensure that the screen saver wouldn't start if an external program
reactivated the screen saver after synergy disabled it.

It's possible that this was causing screen flicker under gnome, though
i don't know why.  It's also possible that periodically sending events
to xscreensaver is causing the flicker but removing that code is more
difficult because xscreensaver can't be disabled, only deactivated or
killed.
2003-04-13 17:13:27 +00:00
crs 4521fe4990 Fixed several win32 bugs. First, synergy wasn't forwarding mouse
events to other hook functions, which broke some tools like objectbar.
Second, windows key processing was fixed.  Previously pressing and
release the key would only send a press event, locking the user onto
the client window;  also, the win32 server treated as a Meta modifier
instead of a Super modifier, which broke any use of it as any kind of
modifier key.  Third, added hacks to support several key combinations
on windows 95/98/me that are treated specially by windows, including
Alt+Tab, Alt+Shift+Tab, Alt+Esc, Alt+Shift+Esc, Ctrl+Esc, and any
combination using the windows key like Win+E and Win+F but not
Ctrl+Alt+Del.  Fourth, scroll lock only locking to the client (which
only happened when using a synergy server on windows) has been fixed;
unfortunately the solution causes a lot of screen redraws for some
reason.  Finally, there's been a fix to clipboard handling that may
or may not fix a problem where the clipboard would stop transferring
between systems after a little while.  I can't be sure if it fixes
the problem because I can't reproduce the problem.
2003-04-13 14:59:53 +00:00
crs 2d168319e4 Changed version to 1.0.7. 2003-04-13 14:38:40 +00:00
crs c2bd4ebd4c Changed MS clipboard text converters to truncate the clipboard
data at the first NUL.  This fixes a bug when interoperating
with some win32 programs.
2003-04-08 19:26:35 +00:00
crs 5320f663ba Changed version to 1.0.6. 2003-03-26 21:03:58 +00:00
crs 125e81c92e This should fix multimon support on win32. 2003-03-25 21:31:39 +00:00
crs 9dabd425a5 Added check for the screen saver actually being active before
entering the loop waiting for it to deactivate.  The failure
to check was causing the screen saver code to kick in when
the screen saver timeout occurred, even if the screen saver
wasn't enabled (because Windows still sends the screen saver
activating message for no good reason when the screen saver
is disabled).
2003-03-21 19:16:37 +00:00
crs 95263289ac Fixed errors in merge causing infinite loops. 2003-03-21 19:14:32 +00:00
crs 995c9547cf Fixed getWindowProperty(). It wasn't catching all failure
cases correctly.
2003-03-21 19:13:15 +00:00
crs a5633b1971 Added options and advanced options dialogs which should've been
part of an earlier checkin.  Also now saving and restoring
options that aren't in the configuration file to/from the
registry.
2003-03-17 22:32:10 +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 0fd70ee536 Added type casts to avoid warning. 2003-03-17 22:31:59 +00:00
crs 9f984ad1a0 Fixed detection of screen saver shutdown on windows nt. 2003-03-16 17:40:57 +00:00