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.
fixed two blown assertions. first, if user tried to switch to
a client that had connected but hadn't yet sent the first info
message it would assert on the zero size screen. second, if
the primary screen was handling a mouse motion on behalf of a
secondary screen when that secondary screen disconnected then
an assert would blow because the primary screen would call
onMouseMoveSecondary() but m_protocol on the active screen is
NULL because disconnecting the active secondary screen caused
the mouse to jump to the primary screen.
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.
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.
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.
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.
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.
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).
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