Commit Graph

2346 Commits

Author SHA1 Message Date
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 7791b167bf Added exec.dsp to EXTRA_DIST. 2003-04-24 20:10:13 +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 019994548c Fixed problem with type casting void* to int. 2003-04-13 18:14:01 +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 ef59307c16 Added mention of tray icon to launcher start message box. 2003-04-13 14:39:17 +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 53c05e0163 Updates for version 1.0.6. 2003-03-26 21:19:10 +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 380369d331 Documentation updates. 2003-03-22 11:49:23 +00:00
crs 68ecf48a70 Added key modifier and heartbeat options to GUI. 2003-03-22 11:49:13 +00:00
crs a6cb8769ba Oops, included a windows only header in non-windows builds. 2003-03-21 19:34:08 +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 7684b35c4f Fixed icons. 2003-03-21 19:14:10 +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
crs 74e50877e9 Made releaseKeys() only synthesize key releases for those keys
that synergy synthesized a press for, not keys that the user
is physically pressing.
2003-03-16 17:40:56 +00:00
crs de64342292 Minor hook fixes. 2003-03-16 17:40:47 +00:00
crs 95ddb95643 Added resources missing from previous checkin. 2003-03-16 17:40:25 +00:00
crs 635a2a7c5f Moved comment to more relevant location. 2003-03-13 20:24:45 +00:00
crs a7bafcca2f Fixed double locking of mutex. 2003-03-13 19:20:55 +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 8685afd9f6 Changed version to 1.0.5. 2003-02-22 15:04:09 +00:00
crs 5f164375d4 Changes to support remapping modifier keys on clients. 2003-02-22 15:03:31 +00:00
crs dce445a83a Updates for version 1.0.3. 2003-02-17 16:20:49 +00:00
crs 6301af9d50 Changed version to 1.0.3. 2003-02-17 12:44:37 +00:00
crs dd339fe375 Changed win32 client side cursor warping to be all relative motion
when not on the primary monitor.  This should eliminate the flicker
between virtual display 0,0 and the correct position.  While this
allows the user to confuse synergy by using the client's mouse,
synergy recovers quickly and easily from any confusion.
2003-02-16 19:55:54 +00:00
crs 2fc8780285 Added hack to heuristically detect bogus mouse motion caused by
a race condition where the synergy server updates the mouse
position but the synergy hook later receives a mouse update from
before the position change (i.e. out of order).
2003-02-16 19:53:56 +00:00
crs 9a7e452a3e Commented out an unnecessary hook and added a compile time
switch to disable grabbing of keyboard on win32 to facilitate
debugging.
2003-02-16 19:51:46 +00:00
crs 60fdb1f529 Changed heap to stack allocation in an oft-called function for
data that's never used outside the function.
2003-02-16 19:50:36 +00:00
crs 3351a66f51 Fixed memory leaks. 2003-02-16 19:49:44 +00:00