Commit Graph

129 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
4ac756fc28 Fixed cursor hiding on win32. Still fails occassionally. 2004-02-29 21:32:00 +00:00
crs
1a9ddb9110 Added missing files. 2004-02-28 12:30:52 +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
1861f21fb5 Checkpoint. synergys now works. Still need to do lib/client and
synergyc.
2004-02-14 14:04:36 +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
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
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
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
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
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
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
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
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
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
28427a0e9b Keyboard fixes on win32. 2003-07-05 17:04:26 +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
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