obsoleted {GS}etWindowsLong() with {GS}etWindowsLongPtr(). These
latter functions are supported from Win95 and WinNT 3.1 so they
shouldn't introduce any compatibility problems.
* HP-UX fixes (Bernd Noll)
* Now handling accept() taking an int 3rd arg
* Now casting sizeof() to socklen_t where necessary
* BSD ports fix (Kristen Glynn)
* Now defining NULL via stddef.h
* Crash on X11 using clipboard (Daniel Gollub)
* CXWindowsClipboard::pushReplies() increments iterator better
* Solaris/HP-UX compile errors
* Now #ifdef out sets of key syms if first key sym undefined
* Fix assertion on bad mouse position (ubiquitous_q)
* Validate mouse position from client and fix if necessary
- Fixed taking the address of begin() on an empty std::vector.
- Fixed nsis makefile to use %ProgramFiles% environment variable.
- Fixed nsis makefile to pass the output directory and file to makensis.
- Fixed synergy.nsi to get the files from the output directory. That
enables a debug build of the installer.
- Fixes to compile under VS2005.
I did not apply VS2005 project files, instead adding nmake files.
nmake is pretty weak but the makefiles can be modified without having
visual studio. Also modified the .rc files to not use winres.h.
This plus nmake means synergy can now be built using the freely
downloadable Microsoft Windows SDK for Vista, available from
microsoft's web site. This change removes all of the old VC++6
project files in favor of the nmake files. It also removes the
XCode project in favor of ./configure and make.
All of the nmake files are named nmake.mak. Only the top level
makefile is directly useful (the rest are included by it) so all
builds are from the top level directory. nmake knows the following
targets:
all: build synergy.exe, synergyc.exe and synergys.exe
clean: remove all intermediate files, keep programs
clobber: clean and remove programs
installer: build programs and an installer
debug: build a debug version of 'all'
release: build a release version of 'all'
debug-installer: build an installer of the debug build
release-installer: build an installer of the release build
The default build version is release so 'all' and 'installer' will
build a release version. The installer itself never has debug
symbols, just the stuff it installs. The default target is 'all'.
To build use:
nmake /nologo /f nmake.mak <target>
VC++ and VisualStudio users may need to manually run vcvars.bat in a
command.exe or cmd.exe window before invoking nmake. The Window 98/Me
command.exe may not handle potentially long command lines; I haven't
tried to verify if that works.
modifiers for all keys for testing purposes and forgotton to fix
that. Now choosing required modifiers per key. This fixes
shift+arrow keys suppressing the shift key and, i think, the
option key not working.
the handling of compose key sequences. The key presses were
suppressed but not the corresponding releases, confusing the
clients. It also adds support for generating keysyms via the
compose key if the necessary dead keys or Mode_switch are not
available.
when leaving screen. This may help determine how to avoid
DOS command prompt windows being in the foreground when leaving
the screen since they suppress handling of the shift key.
fix some other bugs that involve unexpectedly quiting. The problem
was that synergy would (cleanly) quit when receiving an event with
a message id of 0 when not running as a service.
the opposite handedness if the desired handedness is missing.
For example, if Alt_R is unmapped as it often is on keyboards
with Mode_switch, the client will use Alt_L if it is mapped
when told to synthesize Alt_R. This should fix handling of
AltGr sent from a win32 server. AltGr is literally just
Control_L and Alt_R and, previously, an X11 client without
Alt_R mapped would only simulate Control_L. This does not
address the fact that the user may really just want the Alt
modifier; there are already hueristics to attempt to figure
that out.
and Xinerama correctly. Also was using '#if defined(...)' instead
of '#if ...' for testing configure macros in some places. This
yields the wrong answer if the macro is set to 0, which means
missing/disabled.
events when receiving any event with message == 0 when the system
doesn't use old style mouse wheel events. Some programs (especially
the flash plugin) would send events with message == 0 causing
undesired wheel scrolling.
the cursor wasn't being parked in the center of the main screen
but instead at the center of the total display surface. This could
place it off or dangerously close to the edge of the transparent
window that covers the main screen and prevent synergy from capturing
mouse motion.
for class visibility on pointers to member function 'using the
qualifying scope of the name itself.' what this means is if method
'prot' is declared protected in class A and B inherits from A then
a method in B cannot use &A::prot but can use &B::prot. Synergy
now does this in the one place it had not.