Merge pull request #1297 from a1346054/fixes

Simple maintenance improvements
This commit is contained in:
Povilas Kanapickas 2021-09-24 01:12:36 +03:00 committed by GitHub
commit dd8c2a1a38
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
87 changed files with 377 additions and 344 deletions

View File

@ -18,7 +18,7 @@ body:
id: version id: version
attributes: attributes:
label: Version label: Version
description: What version of Barrier are you runnning? description: What version of Barrier are you running?
options: options:
- v2.0.0-RC1 - v2.0.0-RC1
- v2.0.0-RC2 - v2.0.0-RC2

61
LICENSE
View File

@ -3,7 +3,7 @@ Copyright (C) 2012-2016 Symless Ltd.
Copyright (C) 2008-2014 Nick Bolton Copyright (C) 2008-2014 Nick Bolton
Copyright (C) 2002-2014 Chris Schoeneman Copyright (C) 2002-2014 Chris Schoeneman
This program is released under the GPL with the additional exemption This program is released under the GPL with the additional exemption
that compiling, linking, and/or using OpenSSL is allowed. that compiling, linking, and/or using OpenSSL is allowed.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
@ -286,3 +286,62 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -107,7 +107,8 @@ A: Start the binary with the argument `--config <path_to_saved_configuration>`
Q: After loading my configuration on the client the field 'Server IP' is still empty! Q: After loading my configuration on the client the field 'Server IP' is still empty!
A: Edit your configuration to include the servers ip adress manually with A: Edit your configuration to include the server's ip address manually with
(...)
section: options (...)
serverhostname=<AAA.BBB.CCC.DDD> section: options
serverhostname=<AAA.BBB.CCC.DDD>

View File

@ -1 +1 @@
theme: jekyll-theme-slate theme: jekyll-theme-slate

View File

@ -65,7 +65,7 @@ if exist bin\Debug (
mkdir bin\Release\platforms mkdir bin\Release\platforms
copy %B_QT_FULLPATH%\plugins\platforms\qwindows.dll bin\Release\platforms\ > NUL copy %B_QT_FULLPATH%\plugins\platforms\qwindows.dll bin\Release\platforms\ > NUL
) else ( ) else (
echo Remember to copy supporting binaries and confiuration files! echo Remember to copy supporting binaries and configuration files!
) )
echo Build completed successfully echo Build completed successfully

View File

@ -1,10 +1,10 @@
#!/bin/sh #!/bin/sh
cd "$(dirname $0)" || exit 1 cd "$(dirname "$0")" || exit 1
# some environments have cmake v2 as 'cmake' and v3 as 'cmake3' # some environments have cmake v2 as 'cmake' and v3 as 'cmake3'
# check for cmake3 first then fallback to just cmake # check for cmake3 first then fallback to just cmake
B_CMAKE=`type cmake3 2>/dev/null` B_CMAKE=`type cmake3 2>/dev/null`
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
B_CMAKE=`echo $B_CMAKE | cut -d' ' -f3` B_CMAKE=`echo "$B_CMAKE" | cut -d' ' -f3`
else else
B_CMAKE=cmake B_CMAKE=cmake
fi fi
@ -26,7 +26,7 @@ B_CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=$B_BUILD_TYPE $B_CMAKE_FLAGS"
rm -rf build rm -rf build
mkdir build || exit 1 mkdir build || exit 1
cd build || exit 1 cd build || exit 1
echo Starting Barrier $B_BUILD_TYPE build... echo "Starting Barrier $B_BUILD_TYPE build..."
$B_CMAKE $B_CMAKE_FLAGS .. || exit 1 $B_CMAKE $B_CMAKE_FLAGS .. || exit 1
make || exit 1 make || exit 1
echo "Build completed successfully" echo "Build completed successfully"

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# Use the same verbose variable as CMake # Use the same verbose variable as CMake
[ "$VERBOSE" == "1" ] && set -x [ "$VERBOSE" = "1" ] && set -x
# Exit on unset variables or pipe errors # Exit on unset variables or pipe errors
set -uo pipefail set -uo pipefail
@ -14,10 +14,10 @@ B_BARRIERC="Barrier.app/Contents/MacOS/barrierc"
B_BARRIERS="Barrier.app/Contents/MacOS/barriers" B_BARRIERS="Barrier.app/Contents/MacOS/barriers"
# Colorized output # Colorized output
function info() { tput bold; echo "$@" ; tput sgr0 ;} info() { tput bold; echo "$@"; tput sgr0 ; }
function error() { tput bold; tput setaf 1; echo "$@"; tput sgr0 ; } error() { tput bold; tput setaf 1; echo "$@"; tput sgr0 ; }
function success() { tput bold; tput setaf 2; echo "$@"; tput sgr0 ; } success() { tput bold; tput setaf 2; echo "$@"; tput sgr0 ; }
function warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; } warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; }
info "Checking for bundle contents" info "Checking for bundle contents"
if [ ! -d "Barrier.app/Contents" ]; then if [ ! -d "Barrier.app/Contents" ]; then
@ -40,7 +40,7 @@ if which -s port ; then
info "MacPorts found, searching for macdeployqt" info "MacPorts found, searching for macdeployqt"
DEPLOYQT="$(port contents qt5-qttools | grep --only --max-count 1 '/.*macdeployqt')" DEPLOYQT="$(port contents qt5-qttools | grep --only --max-count 1 '/.*macdeployqt')"
if [ ! -x "$DEPLOYQT" ]; then if [ ! -x "$DEPLOYQT" ]; then
error Please install package qt5-qttools error "Please install package qt5-qttools"
exit 1 exit 1
fi fi
fi fi
@ -50,13 +50,13 @@ if which -s brew ; then
info "Homebrew found, searching for macdeployqt" info "Homebrew found, searching for macdeployqt"
DEPLOYQT="$(brew list qt@5 | grep --only '/.*macdeployqt' | head -1)" DEPLOYQT="$(brew list qt@5 | grep --only '/.*macdeployqt' | head -1)"
if [ ! -x "$DEPLOYQT" ]; then if [ ! -x "$DEPLOYQT" ]; then
error Please install package qt error "Please install package qt"
exit 1 exit 1
fi fi
fi fi
# Use macdeployqt to include libraries and create dmg # Use macdeployqt to include libraries and create dmg
if [ "$B_BUILDTYPE" == "Release" ]; then if [ "$B_BUILDTYPE" = "Release" ]; then
info "Building Release disk image (dmg)" info "Building Release disk image (dmg)"
"$DEPLOYQT" Barrier.app -dmg \ "$DEPLOYQT" Barrier.app -dmg \
-executable="$B_BARRIERC" \ -executable="$B_BARRIERC" \

View File

@ -1,30 +1,30 @@
#!/bin/sh #!/bin/sh
# add warning for users running manually # add warning for users running manually
function warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; } warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; }
warn "The scripts build_installer.sh and reref_dylibs.sh have been deprecated." warn "The scripts build_installer.sh and reref_dylibs.sh have been deprecated."
warn "Please use build_dist.sh instead to deploy using macdeployqt" warn "Please use build_dist.sh instead to deploy using macdeployqt"
# change this to rename the installer package # change this to rename the installer package
B_DMG="Barrier-@BARRIER_VERSION@.dmg" B_DMG="Barrier-@BARRIER_VERSION@.dmg"
cd "$( dirname '$0' )" cd "$( dirname "$0" )"
OWNDIR="$( pwd )" OWNDIR="$( pwd )"
B_REREF_SCRIPT="$OWNDIR/reref_dylibs.sh" B_REREF_SCRIPT="$OWNDIR/reref_dylibs.sh"
if [ ! -x $B_REREF_SCRIPT ]; then if [ ! -x "$B_REREF_SCRIPT" ]; then
echo Missing script: $B_REREF_SCRIPT echo "Missing script: $B_REREF_SCRIPT"
exit 1 exit 1
fi fi
# remove any old copies so there's no confusion about whether this # remove any old copies so there's no confusion about whether this
# process completes successfully or not # process completes successfully or not
rm -rf temp.dmg $B_DMG rm -rf temp.dmg "$B_DMG"
cd Barrier.app/Contents 2>/dev/null cd Barrier.app/Contents 2>/dev/null
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo Please make sure that the build completed successfully echo "Please make sure that the build completed successfully"
echo before trying to create the installer. echo "before trying to create the installer."
exit 1 exit 1
fi fi
@ -77,7 +77,7 @@ hdiutil create -size 64m -fs HFS+ -volname "Barrier" temp.dmg || exit 1
hdiutil attach temp.dmg -mountpoint mnt || exit 1 hdiutil attach temp.dmg -mountpoint mnt || exit 1
cp -r Barrier.app mnt/ || exit 1 cp -r Barrier.app mnt/ || exit 1
hdiutil detach mnt || exit 1 hdiutil detach mnt || exit 1
hdiutil convert temp.dmg -format UDZO -o $B_DMG || exit 1 hdiutil convert temp.dmg -format UDZO -o "$B_DMG" || exit 1
rm temp.dmg rm temp.dmg
echo "dmg $B_DMB created successfully" echo "dmg $B_DMG created successfully"

View File

@ -5,28 +5,28 @@ B_TARGET=$1
if [ "x$B_TARGET" = "x" ]; then if [ "x$B_TARGET" = "x" ]; then
# add warning for users running manually # add warning for users running manually
function warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; } warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; }
warn "The scripts build_installer.sh and reref_dylibs.sh have been deprecated." warn "The scripts build_installer.sh and reref_dylibs.sh have been deprecated."
warn "Please use build_dist.sh instead to deploy using macdeployqt" warn "Please use build_dist.sh instead to deploy using macdeployqt"
echo Which binary needs to be re-referenced? echo "Which binary needs to be re-referenced?"
exit 1 exit 1
fi fi
cd $(dirname $B_TARGET) || exit 1 cd "$(dirname "$B_TARGET")" || exit 1
# where to find non-system libraries relative to target's directory. # where to find non-system libraries relative to target's directory.
# the vast majority of the time this should be empty # the vast majority of the time this should be empty
B_REL_PATH=$2 B_REL_PATH=$2
# we're in target's directory now. trim off the path # we're in target's directory now. trim off the path
B_TARGET=$(basename $B_TARGET) B_TARGET=$(basename "$B_TARGET")
# get a list of non-system libraries and make local copies # get a list of non-system libraries and make local copies
B_LIBS=$(otool -XL $B_TARGET | awk '{ print $1 }' | grep -Ev '^(/usr/lib|/System)') B_LIBS=$(otool -XL "$B_TARGET" | awk '{ print $1 }' | grep -Ev '^(/usr/lib|/System)')
[ $? -ne 0 ] && exit 1 [ $? -ne 0 ] && exit 1
for B_LIB in $B_LIBS; do for B_LIB in $B_LIBS; do
B_LIB_NAME=$(basename $B_LIB) B_LIB_NAME=$(basename "$B_LIB")
# otool reports barrier as "barrier:" which fails self-reference test below # otool reports barrier as "barrier:" which fails self-reference test below
B_LIB_NAME=${B_LIB_NAME//:} B_LIB_NAME=${B_LIB_NAME//:}
@ -34,16 +34,16 @@ for B_LIB in $B_LIBS; do
[ "$B_TARGET" = "$B_LIB_NAME" ] && continue [ "$B_TARGET" = "$B_LIB_NAME" ] && continue
B_DST=${B_REL_PATH}${B_LIB_NAME} B_DST=${B_REL_PATH}${B_LIB_NAME}
if [ ! -e $B_DST ]; then if [ ! -e "$B_DST" ]; then
cp $B_LIB $B_DST || exit 1 cp "$B_LIB" "$B_DST" || exit 1
chmod u+rw $B_DST || exit 1 chmod u+rw "$B_DST" || exit 1
# recursively call this script on libraries purposefully not passing # recursively call this script on libraries purposefully not passing
# $B_REL_PATH so that it is only used explicitly # $B_REL_PATH so that it is only used explicitly
$0 $B_DST $0 "$B_DST"
fi fi
# adjust the target's metadata to point to the local copy # adjust the target's metadata to point to the local copy
# rather than the system-wide copy which would only exist on # rather than the system-wide copy which would only exist on
# a development machine # a development machine
install_name_tool -change $B_LIB @loader_path/$B_DST $B_TARGET || exit 1 install_name_tool -change "$B_LIB" "@loader_path/$B_DST" "$B_TARGET" || exit 1
done done

View File

@ -47,7 +47,7 @@ section: links
end end
# The aliases section is to map the full names of the computers to their logical names used in the screens section # The aliases section is to map the full names of the computers to their logical names used in the screens section
# One way to find the actual name of a comptuer is to run hostname from a command window # One way to find the actual name of a computer is to run hostname from a command window
section: aliases section: aliases
# Laptop is actually known as John-Smiths-MacBook-3.local # Laptop is actually known as John-Smiths-MacBook-3.local
John-Smiths-MacBook-3.local: John-Smiths-MacBook-3.local:

View File

@ -1 +1 @@
Made it possible to use keyboard instead of mouse to modify screen layout. Made it possible to use keyboard instead of mouse to modify screen layout.

View File

@ -4,17 +4,17 @@
<plist version="1.0"> <plist version="1.0">
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier client automatically. Make sure you change the IP below. --> <!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier client automatically. Make sure you change the IP below. -->
<dict> <dict>
<key>Label</key> <key>Label</key>
<string>org.debauchee.com.barrierc.plist</string> <string>org.debauchee.com.barrierc.plist</string>
<key>OnDemand</key> <key>OnDemand</key>
<false/> <false/>
<key>ProgramArguments</key> <key>ProgramArguments</key>
<array> <array>
<string>/usr/bin/barrierc</string> <string>/usr/bin/barrierc</string>
<!-- Replace this IP with the IP of your barriers server --> <!-- Replace this IP with the IP of your barriers server -->
<string>192.168.0.2</string> <string>192.168.0.2</string>
</array> </array>
<key>RunAtLoad</key> <key>RunAtLoad</key>
<true/> <true/>
</dict> </dict>
</plist> </plist>

View File

@ -4,12 +4,12 @@
<plist version="1.0"> <plist version="1.0">
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier server automatically. Make sure you change configuration file below --> <!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier server automatically. Make sure you change configuration file below -->
<dict> <dict>
<key>Label</key> <key>Label</key>
<string>org.debauchee.com.barriers.plist</string> <string>org.debauchee.com.barriers.plist</string>
<key>OnDemand</key> <key>OnDemand</key>
<false/> <false/>
<key>ProgramArguments</key> <key>ProgramArguments</key>
<array> <array>
<string>/usr/bin/barriers</string> <string>/usr/bin/barriers</string>
<string>--no-daemon</string> <string>--no-daemon</string>
<string>--config</string> <string>--config</string>

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# Checks if directory exists, otherwise asks to install package. # Checks if directory exists, otherwise asks to install package.
function check_dir_exists() { check_dir_exists() {
local path=$1 local path=$1
local package=$2 local package=$2
@ -11,7 +11,7 @@ function check_dir_exists() {
fi fi
} }
if [ ! $BARRIER_BUILD_ENV ]; then if [ -z "$BARRIER_BUILD_ENV" ]; then
check_dir_exists '/Applications/Xcode.app' 'Xcode' check_dir_exists '/Applications/Xcode.app' 'Xcode'
printf "Modifying environment for Barrier build...\n" printf "Modifying environment for Barrier build...\n"

View File

@ -1,4 +1,4 @@
Thank you for chosing Barrier! Thank you for choosing Barrier!
https://github.com/debauchee/barrier/ https://github.com/debauchee/barrier/
Barrier allows you to share your keyboard and mouse between computers over a network. Barrier allows you to share your keyboard and mouse between computers over a network.

View File

@ -5,6 +5,5 @@ Comment=Keyboard and mouse sharing solution
Exec=barrier Exec=barrier
Icon=barrier Icon=barrier
Terminal=false Terminal=false
Categories=Utility;DesktopUtility; Categories=Utility;RemoteAccess;
Keywords=keyboard;mouse;sharing;network;share; Keywords=keyboard;mouse;sharing;network;share;

View File

@ -1,10 +1,10 @@
#!/bin/sh #!/bin/sh
ICNS_BASE=../dist/macos/bundle/Barrier.app/Contents/Resources ICNS_BASE=../dist/macos/bundle/Barrier.app/Contents/Resources
if ! which magick >/dev/null 2>&1; then if ! which magick >/dev/null 2>&1; then
echo "Need ImageMagic for this" echo "Need ImageMagick for this"
exit 10 exit 10
fi fi
cd $(dirname $0) || exit $? cd "$(dirname "$0")" || exit $?
if [ ! -r barrier.png ]; then if [ ! -r barrier.png ]; then
echo "Use inkscape (or another vector graphics editor) to create barrier.png from barrier.svg first" echo "Use inkscape (or another vector graphics editor) to create barrier.png from barrier.svg first"
exit 10 exit 10
@ -12,11 +12,11 @@ fi
rm -rf work || exit $? rm -rf work || exit $?
mkdir -p work || exit $? mkdir -p work || exit $?
for s in 16 24 32 48 64 128 256 512 1024; do for s in 16 24 32 48 64 128 256 512 1024; do
magick convert barrier.png -resize ${s}x${s} -depth 8 work/${s}.png || exit $? magick convert barrier.png -resize "${s}x${s}" -depth 8 "work/${s}.png" || exit $?
done done
# windows icon # windows icon
magick convert work/{16,24,32,48,64,128}.png barrier.png barrier.ico || exit $? magick convert work/{16,24,32,48,64,128}.png barrier.png barrier.ico || exit $?
# macos icon # macos icon
png2icns $ICNS_BASE/Barrier.icns work/{16,32,256,512,1024}.png || exit $? png2icns "$ICNS_BASE/Barrier.icns" work/{16,32,256,512,1024}.png || exit $?
rm -rf work rm -rf work
echo Done echo Done

View File

@ -20,4 +20,3 @@ add_subdirectory(barriers)
if (WIN32) if (WIN32)
add_subdirectory(barrierd) add_subdirectory(barrierd)
endif() endif()

View File

@ -46,4 +46,3 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
install (TARGETS barrierc DESTINATION bin) install (TARGETS barrierc DESTINATION bin)
endif() endif()

View File

@ -66,4 +66,3 @@ createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events
{ {
return new OSXClientTaskBarReceiver(logBuffer, events); return new OSXClientTaskBarReceiver(logBuffer, events);
} }

View File

@ -73,7 +73,7 @@ BEGIN
VALUE "ProductName", "Barrier" VALUE "ProductName", "Barrier"
VALUE "ProductVersion", BARRIER_VERSION VALUE "ProductVersion", BARRIER_VERSION
VALUE "OriginalFilename", "barrierd.exe" VALUE "OriginalFilename", "barrierd.exe"
VALUE "FileDescription", "Open source KVM software deamon" VALUE "FileDescription", "Open source KVM software daemon"
VALUE "InternalName", "barrierd" VALUE "InternalName", "barrierd"
END END
END END

View File

@ -46,5 +46,3 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
install (TARGETS barriers DESTINATION bin) install (TARGETS barriers DESTINATION bin)
endif() endif()

View File

@ -1,46 +1,46 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<languages> <languages>
<language ietfCode="en" name="English" /> <language ietfCode="en" name="English" />
<language ietfCode="ca-AD" name="Català (Andorra)" /> <language ietfCode="ca-AD" name="Català (Andorra)" />
<language ietfCode="cs-CZ" name="Čeština" /> <language ietfCode="cs-CZ" name="Čeština" />
<language ietfCode="cy" name="Cymraeg" /> <language ietfCode="cy" name="Cymraeg" />
<language ietfCode="da" name="Dansk" /> <language ietfCode="da" name="Dansk" />
<language ietfCode="de" name="Deutsch" /> <language ietfCode="de" name="Deutsch" />
<language ietfCode="es" name="Español" /> <language ietfCode="es" name="Español" />
<language ietfCode="fr" name="Français" /> <language ietfCode="fr" name="Français" />
<language ietfCode="hr-HR" name="Hrvatski" /> <language ietfCode="hr-HR" name="Hrvatski" />
<language ietfCode="id" name="Indonesia" /> <language ietfCode="id" name="Indonesia" />
<language ietfCode="it" name="Italiano" /> <language ietfCode="it" name="Italiano" />
<language ietfCode="lv" name="Latvijas" /> <language ietfCode="lv" name="Latvijas" />
<language ietfCode="lt" name="Lietuvos" /> <language ietfCode="lt" name="Lietuvos" />
<language ietfCode="hu-HU" name="Magyar" /> <language ietfCode="hu-HU" name="Magyar" />
<language ietfCode="nl-NL" name="Nederlands" /> <language ietfCode="nl-NL" name="Nederlands" />
<language ietfCode="no" name="Norsk" /> <language ietfCode="no" name="Norsk" />
<language ietfCode="pl-PL" name="Polski" /> <language ietfCode="pl-PL" name="Polski" />
<language ietfCode="pt-PT" name="Português" /> <language ietfCode="pt-PT" name="Português" />
<language ietfCode="pt-BR" name="Português (Brasil)" /> <language ietfCode="pt-BR" name="Português (Brasil)" />
<language ietfCode="ro" name="Română" /> <language ietfCode="ro" name="Română" />
<language ietfCode="sq-AL" name="Shqiptar" /> <language ietfCode="sq-AL" name="Shqiptar" />
<language ietfCode="sl-SI" name="Slovenščina" /> <language ietfCode="sl-SI" name="Slovenščina" />
<language ietfCode="sk-SK" name="Slovenčina" /> <language ietfCode="sk-SK" name="Slovenčina" />
<language ietfCode="fi" name="Suomi" /> <language ietfCode="fi" name="Suomi" />
<language ietfCode="sv" name="Svenska" /> <language ietfCode="sv" name="Svenska" />
<language ietfCode="vi" name="Tiếng Việt" /> <language ietfCode="vi" name="Tiếng Việt" />
<language ietfCode="tr-TR" name="Türkçe" /> <language ietfCode="tr-TR" name="Türkçe" />
<language ietfCode="bg-BG" name="български" /> <language ietfCode="bg-BG" name="български" />
<language ietfCode="ru" name="Русский" /> <language ietfCode="ru" name="Русский" />
<language ietfCode="sr" name="српски" /> <language ietfCode="sr" name="српски" />
<language ietfCode="uk" name="Український" /> <language ietfCode="uk" name="Український" />
<language ietfCode="grk" name="Ελληνικά" /> <language ietfCode="grk" name="Ελληνικά" />
<language ietfCode="he" name="עברית" /> <language ietfCode="he" name="עברית" />
<language ietfCode="ar" name="العربية" /> <language ietfCode="ar" name="العربية" />
<language ietfCode="pes-IR" name="فارسی" /> <language ietfCode="pes-IR" name="فارسی" />
<language ietfCode="ur" name="اردو" /> <language ietfCode="ur" name="اردو" />
<language ietfCode="mr" name="मराठी" /> <language ietfCode="mr" name="मराठी" />
<language ietfCode="si" name="Sඉන්හල" /> <language ietfCode="si" name="Sඉන්හල" />
<language ietfCode="th-TH" name="ภาษาไทย" /> <language ietfCode="th-TH" name="ภาษาไทย" />
<language ietfCode="zh-CN" name="中文 (简体)" /> <language ietfCode="zh-CN" name="中文 (简体)" />
<language ietfCode="zh-TW" name="中文 (繁體)" /> <language ietfCode="zh-TW" name="中文 (繁體)" />
<language ietfCode="ja-JP" name="日本語" /> <language ietfCode="ja-JP" name="日本語" />
<language ietfCode="ko" name="한국어" /> <language ietfCode="ko" name="한국어" />
</languages> </languages>

View File

@ -905,8 +905,8 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<source>Drag new screens to the grid or move existing ones around. <source>Drag new screens to the grid or move existing ones around.
Drag a screen to the trashcan to delete it. Drag a screen to the trashcan to delete it.
Double click on a screen to edit its settings.</source> Double click on a screen to edit its settings.</source>
<translation type="finished">Arrossega noves pantalles a la graella o mou les actuals al voltant. <translation type="finished">Arrossega noves pantalles a la graella o mou les actuals al voltant.
Arrossega una pantalla a la paperera per eliminar-la. Arrossega una pantalla a la paperera per eliminar-la.
Fes doble clic a una pantalla per editar la seva configuració.</translation> Fes doble clic a una pantalla per editar la seva configuració.</translation>
</message> </message>
<message> <message>
@ -1335,7 +1335,7 @@ p, li { white-space: pre-wrap; }
Server response: Server response:
%1</source> %1</source>
<translation type="finished">Error inici de sessió, hi ha hagut un error. <translation type="finished">Error inici de sessió, hi ha hagut un error.
Resposta del servidor: Resposta del servidor:
%1</translation> %1</translation>
</message> </message>

View File

@ -1334,7 +1334,7 @@ p, li { white-space: pre-wrap; }
Server response: Server response:
%1</source> %1</source>
<translation type="finished">Fejl i login, en fejl opstod. <translation type="finished">Fejl i login, en fejl opstod.
Server svar: Server svar:
%1</translation> %1</translation>
</message> </message>

View File

@ -1334,7 +1334,7 @@ p, li { white-space: pre-wrap; }
Server response: Server response:
%1</source> %1</source>
<translation type="finished">Inloggen mislukt, er is een fout opgetreden. <translation type="finished">Inloggen mislukt, er is een fout opgetreden.
Foutmelding: Foutmelding:
%1</translation> %1</translation>
</message> </message>

View File

@ -1325,7 +1325,7 @@ p, li { white-space: pre-wrap; }
<source>Login failed, an error occurred. <source>Login failed, an error occurred.
%1</source> %1</source>
<translation type="finished">Logowanie nie powiodło się, wystąpił błąd. <translation type="finished">Logowanie nie powiodło się, wystąpił błąd.
%1</translation> %1</translation>
</message> </message>
<message> <message>
@ -1335,7 +1335,7 @@ p, li { white-space: pre-wrap; }
Server response: Server response:
%1</source> %1</source>
<translation type="finished">Logowanie nie powiodło się, wystąpił błąd. <translation type="finished">Logowanie nie powiodło się, wystąpił błąd.
Odpowiedź serwera: Odpowiedź serwera:
%1</translation> %1</translation>
</message> </message>

View File

@ -1325,7 +1325,7 @@ p, li { white-space: pre-wrap; }
<source>Login failed, an error occurred. <source>Login failed, an error occurred.
%1</source> %1</source>
<translation type="finished">Войти не удалось, произошла ошибка. <translation type="finished">Войти не удалось, произошла ошибка.
%1</translation> %1</translation>
</message> </message>
@ -1336,7 +1336,7 @@ p, li { white-space: pre-wrap; }
Server response: Server response:
%1</source> %1</source>
<translation type="finished">Войти не удалось, произошла ошибка. <translation type="finished">Войти не удалось, произошла ошибка.
Ответ сервера: Ответ сервера:

View File

@ -905,8 +905,8 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<source>Drag new screens to the grid or move existing ones around. <source>Drag new screens to the grid or move existing ones around.
Drag a screen to the trashcan to delete it. Drag a screen to the trashcan to delete it.
Double click on a screen to edit its settings.</source> Double click on a screen to edit its settings.</source>
<translation type="finished">Izgaraya yeni ekranları sürükleyin veya çevresinde mevcut olanları taşıyın. <translation type="finished">Izgaraya yeni ekranları sürükleyin veya çevresinde mevcut olanları taşıyın.
Silmek için çöp tenekesine ekranı sürükleyin. Silmek için çöp tenekesine ekranı sürükleyin.
Kendi ayarlarınızı düzenlemek için bir ekran üzerine çift tıklayın.</translation> Kendi ayarlarınızı düzenlemek için bir ekran üzerine çift tıklayın.</translation>
</message> </message>
<message> <message>

View File

@ -40,4 +40,3 @@ class AboutDialog : public QDialog, public Ui::AboutDialogBase
}; };
#endif #endif

View File

@ -164,4 +164,3 @@ QTextStream& operator<<(QTextStream& outStream, const Action& action)
return outStream; return outStream;
} }

View File

@ -211,7 +211,7 @@ void AppConfig::setElevateMode(ElevateMode em) { m_ElevateMode = em; }
void AppConfig::setAutoConfig(bool autoConfig) { m_AutoConfig = autoConfig; } void AppConfig::setAutoConfig(bool autoConfig) { m_AutoConfig = autoConfig; }
bool AppConfig::autoConfigPrompted() { return m_AutoConfigPrompted; } bool AppConfig::autoConfigPrompted() { return m_AutoConfigPrompted; }
void AppConfig::setAutoConfigPrompted(bool prompted) { m_AutoConfigPrompted = prompted; } void AppConfig::setAutoConfigPrompted(bool prompted) { m_AutoConfigPrompted = prompted; }

View File

@ -44,4 +44,3 @@ const char* BaseConfig::m_SwitchCornerNames[] =
"bottom-left", "bottom-left",
"bottom-right" "bottom-right"
}; };

View File

@ -28,7 +28,7 @@ class IpcReader;
class IpcClient : public QObject class IpcClient : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
IpcClient(); IpcClient();

View File

@ -54,4 +54,3 @@ class KeySequence
}; };
#endif #endif

View File

@ -78,4 +78,3 @@ class KeySequenceWidget : public QPushButton
}; };
#endif #endif

View File

@ -624,7 +624,7 @@ QString MainWindow::configFilename()
if (m_pRadioInternalConfig->isChecked()) if (m_pRadioInternalConfig->isChecked())
{ {
// TODO: no need to use a temporary file, since we need it to // TODO: no need to use a temporary file, since we need it to
// be permenant (since it'll be used for Windows services, etc). // be permanent (since it'll be used for Windows services, etc).
m_pTempConfigFile = new QTemporaryFile(); m_pTempConfigFile = new QTemporaryFile();
if (!m_pTempConfigFile->open()) if (!m_pTempConfigFile->open())
{ {
@ -729,7 +729,7 @@ void MainWindow::stopBarrier()
void MainWindow::stopService() void MainWindow::stopService()
{ {
// send empty command to stop service from laucning anything. // send empty command to stop service from launching anything.
m_IpcClient.sendCommand("", appConfig().elevateMode()); m_IpcClient.sendCommand("", appConfig().elevateMode());
} }
@ -1001,7 +1001,7 @@ bool MainWindow::on_m_pButtonBrowseConfigFile_clicked()
return false; return false;
} }
bool MainWindow::on_m_pActionSave_triggered() bool MainWindow::on_m_pActionSave_triggered()
{ {
QString fileName = QFileDialog::getSaveFileName(this, tr("Save configuration as..."), QString(), barrierConfigSaveFilter); QString fileName = QFileDialog::getSaveFileName(this, tr("Save configuration as..."), QString(), barrierConfigSaveFilter);

View File

@ -211,4 +211,3 @@ private slots:
}; };
#endif #endif

View File

@ -1,4 +1,4 @@
/* /*
* barrier -- mouse and keyboard sharing utility * barrier -- mouse and keyboard sharing utility
* Copyright (C) 2012-2016 Symless Ltd. * Copyright (C) 2012-2016 Symless Ltd.
* Copyright (C) 2008 Volker Lanz (vl@fidra.de) * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
@ -45,4 +45,3 @@ void NewScreenWidget::mousePressEvent(QMouseEvent* event)
pDrag->exec(Qt::CopyAction, Qt::CopyAction); pDrag->exec(Qt::CopyAction, Qt::CopyAction);
} }

View File

@ -37,4 +37,3 @@ class NewScreenWidget : public QLabel
}; };
#endif #endif

View File

@ -44,4 +44,3 @@ class QBarrierApplication : public QApplication
}; };
#endif #endif

View File

@ -105,4 +105,3 @@ QDataStream& operator<<(QDataStream& outStream, const Screen& screen);
QDataStream& operator>>(QDataStream& inStream, Screen& screen); QDataStream& operator>>(QDataStream& inStream, Screen& screen);
#endif #endif

View File

@ -152,4 +152,3 @@ void ScreenSettingsDialog::on_m_pListAliases_itemSelectionChanged()
{ {
m_pButtonRemoveAlias->setEnabled(!m_pListAliases->selectedItems().isEmpty()); m_pButtonRemoveAlias->setEnabled(!m_pListAliases->selectedItems().isEmpty());
} }

View File

@ -50,4 +50,3 @@ class ScreenSettingsDialog : public QDialog, public Ui::ScreenSettingsDialogBase
}; };
#endif #endif

View File

@ -110,7 +110,7 @@ bool ScreenSetupModel::dropMimeData(const QMimeData* data, Qt::DropAction action
return false; return false;
if (!parent.isValid() || row != -1 || column != -1) if (!parent.isValid() || row != -1 || column != -1)
return false; return false;
QByteArray encodedData = data->data(m_MimeType); QByteArray encodedData = data->data(m_MimeType);
QDataStream stream(&encodedData, QIODevice::ReadOnly); QDataStream stream(&encodedData, QIODevice::ReadOnly);
@ -141,4 +141,3 @@ bool ScreenSetupModel::dropMimeData(const QMimeData* data, Qt::DropAction action
return true; return true;
} }

View File

@ -68,4 +68,3 @@ class ScreenSetupModel : public QAbstractTableModel
}; };
#endif #endif

View File

@ -225,4 +225,3 @@ QStyleOptionViewItem ScreenSetupView::viewOptions() const
option.textElideMode = Qt::ElideMiddle; option.textElideMode = Qt::ElideMiddle;
return option; return option;
} }

View File

@ -58,4 +58,3 @@ class ScreenSetupView : public QTableView
}; };
#endif #endif

View File

@ -138,4 +138,3 @@ enum {
}; };
#endif #endif

View File

@ -76,7 +76,7 @@ void ServerConfigDialog::showEvent(QShowEvent* event)
if (!m_Message.isEmpty()) if (!m_Message.isEmpty())
{ {
// TODO: ideally this massage box should pop up after the dialog is shown // TODO: ideally this message box should pop up after the dialog is shown
QMessageBox::information(this, tr("Configure server"), m_Message); QMessageBox::information(this, tr("Configure server"), m_Message);
} }
} }

View File

@ -63,4 +63,3 @@ class ServerConfigDialog : public QDialog, public Ui::ServerConfigDialogBase
}; };
#endif #endif

View File

@ -37,7 +37,7 @@ SetupWizard::SetupWizard(MainWindow& mainWindow, bool startMain) :
#elif defined(Q_OS_WIN) #elif defined(Q_OS_WIN)
// when areo is disabled on windows, the next/back buttons // when aero is disabled on windows, the next/back buttons
// are hidden (must be a qt bug) -- resizing the window // are hidden (must be a qt bug) -- resizing the window
// to +1 of the original height seems to fix this. // to +1 of the original height seems to fix this.
// NOTE: calling setMinimumSize after this will break // NOTE: calling setMinimumSize after this will break

View File

@ -19,4 +19,3 @@
// included in both the GUI and the child apps (server & client) // included in both the GUI and the child apps (server & client)
const char ShutdownCh = 'S'; const char ShutdownCh = 'S';

View File

@ -106,7 +106,7 @@ void SslCertificate::generateCertificate()
arguments.append("-x509"); arguments.append("-x509");
arguments.append("-nodes"); arguments.append("-nodes");
// valide duration // valid duration
arguments.append("-days"); arguments.append("-days");
arguments.append(kCertificateLifetime); arguments.append(kCertificateLifetime);

View File

@ -22,7 +22,7 @@
class SslCertificate : public QObject class SslCertificate : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit SslCertificate(QObject *parent = 0); explicit SslCertificate(QObject *parent = 0);

View File

@ -40,4 +40,3 @@ void TrashScreenWidget::dropEvent(QDropEvent* event)
else else
event->ignore(); event->ignore();
} }

View File

@ -39,4 +39,3 @@ class TrashScreenWidget : public QLabel
}; };
#endif #endif

View File

@ -30,4 +30,4 @@ ArchConsoleStd::writeConsole(ELevel level, const char* str)
std::cout << str << std::endl; std::cout << str << std::endl;
std::cout.flush(); std::cout.flush();
} }

View File

@ -72,7 +72,7 @@ std::string ArchInternetWindows::urlEncode(const std::string& url)
std::string result(buffer); std::string result(buffer);
// the win32 url encoding funcitons are pretty useless (to us) and only // the win32 url encoding functions are pretty useless (to us) and only
// escape "unsafe" chars, but not + or =, so we need to replace these // escape "unsafe" chars, but not + or =, so we need to replace these
// manually (and probably many other chars). // manually (and probably many other chars).
barrier::string::findReplaceAll(result, "+", "%2B"); barrier::string::findReplaceAll(result, "+", "%2B");

View File

@ -443,7 +443,7 @@ ArchMiscWindows::wasLaunchedAsService()
bool ArchMiscWindows::getParentProcessName(std::string &name) bool ArchMiscWindows::getParentProcessName(std::string &name)
{ {
PROCESSENTRY32 parentEntry; PROCESSENTRY32 parentEntry;
if (!getParentProcessEntry(parentEntry)){ if (!getParentProcessEntry(parentEntry)) {
LOG((CLOG_ERR "could not get entry for parent process")); LOG((CLOG_ERR "could not get entry for parent process"));
return false; return false;
} }

View File

@ -511,4 +511,4 @@ ArchTaskBarWindows::threadEntry(void* self)
HINSTANCE ArchTaskBarWindows::instanceWin32() HINSTANCE ArchTaskBarWindows::instanceWin32()
{ {
return ArchMiscWindows::instanceWin32(); return ArchMiscWindows::instanceWin32();
} }

View File

@ -57,58 +57,58 @@ XArchEvalWinsock::eval() const noexcept
// may not look up network error messages correctly. we'll have // may not look up network error messages correctly. we'll have
// to do it ourself. // to do it ourself.
static const struct { int m_code; const char* m_msg; } s_netErrorCodes[] = { static const struct { int m_code; const char* m_msg; } s_netErrorCodes[] = {
/* 10004 */{WSAEINTR, "The (blocking) call was canceled via WSACancelBlockingCall"}, /* 10004 */{WSAEINTR, "The (blocking) call was canceled via WSACancelBlockingCall"},
/* 10009 */{WSAEBADF, "Bad file handle"}, /* 10009 */{WSAEBADF, "Bad file handle"},
/* 10013 */{WSAEACCES, "The requested address is a broadcast address, but the appropriate flag was not set"}, /* 10013 */{WSAEACCES, "The requested address is a broadcast address, but the appropriate flag was not set"},
/* 10014 */{WSAEFAULT, "WSAEFAULT"}, /* 10014 */{WSAEFAULT, "WSAEFAULT"},
/* 10022 */{WSAEINVAL, "WSAEINVAL"}, /* 10022 */{WSAEINVAL, "WSAEINVAL"},
/* 10024 */{WSAEMFILE, "No more file descriptors available"}, /* 10024 */{WSAEMFILE, "No more file descriptors available"},
/* 10035 */{WSAEWOULDBLOCK, "Socket is marked as non-blocking and no connections are present or the receive operation would block"}, /* 10035 */{WSAEWOULDBLOCK, "Socket is marked as non-blocking and no connections are present or the receive operation would block"},
/* 10036 */{WSAEINPROGRESS, "A blocking Windows Sockets operation is in progress"}, /* 10036 */{WSAEINPROGRESS, "A blocking Windows Sockets operation is in progress"},
/* 10037 */{WSAEALREADY, "The asynchronous routine being canceled has already completed"}, /* 10037 */{WSAEALREADY, "The asynchronous routine being canceled has already completed"},
/* 10038 */{WSAENOTSOCK, "At least on descriptor is not a socket"}, /* 10038 */{WSAENOTSOCK, "At least on descriptor is not a socket"},
/* 10039 */{WSAEDESTADDRREQ, "A destination address is required"}, /* 10039 */{WSAEDESTADDRREQ, "A destination address is required"},
/* 10040 */{WSAEMSGSIZE, "The datagram was too large to fit into the specified buffer and was truncated"}, /* 10040 */{WSAEMSGSIZE, "The datagram was too large to fit into the specified buffer and was truncated"},
/* 10041 */{WSAEPROTOTYPE, "The specified protocol is the wrong type for this socket"}, /* 10041 */{WSAEPROTOTYPE, "The specified protocol is the wrong type for this socket"},
/* 10042 */{WSAENOPROTOOPT, "The option is unknown or unsupported"}, /* 10042 */{WSAENOPROTOOPT, "The option is unknown or unsupported"},
/* 10043 */{WSAEPROTONOSUPPORT,"The specified protocol is not supported"}, /* 10043 */{WSAEPROTONOSUPPORT, "The specified protocol is not supported"},
/* 10044 */{WSAESOCKTNOSUPPORT,"The specified socket type is not supported by this address family"}, /* 10044 */{WSAESOCKTNOSUPPORT, "The specified socket type is not supported by this address family"},
/* 10045 */{WSAEOPNOTSUPP, "The referenced socket is not a type that supports that operation"}, /* 10045 */{WSAEOPNOTSUPP, "The referenced socket is not a type that supports that operation"},
/* 10046 */{WSAEPFNOSUPPORT, "BSD: Protocol family not supported"}, /* 10046 */{WSAEPFNOSUPPORT, "BSD: Protocol family not supported"},
/* 10047 */{WSAEAFNOSUPPORT, "The specified address family is not supported"}, /* 10047 */{WSAEAFNOSUPPORT, "The specified address family is not supported"},
/* 10048 */{WSAEADDRINUSE, "The specified address is already in use"}, /* 10048 */{WSAEADDRINUSE, "The specified address is already in use"},
/* 10049 */{WSAEADDRNOTAVAIL, "The specified address is not available from the local machine"}, /* 10049 */{WSAEADDRNOTAVAIL, "The specified address is not available from the local machine"},
/* 10050 */{WSAENETDOWN, "The Windows Sockets implementation has detected that the network subsystem has failed"}, /* 10050 */{WSAENETDOWN, "The Windows Sockets implementation has detected that the network subsystem has failed"},
/* 10051 */{WSAENETUNREACH, "The network can't be reached from this host at this time"}, /* 10051 */{WSAENETUNREACH, "The network can't be reached from this host at this time"},
/* 10052 */{WSAENETRESET, "The connection must be reset because the Windows Sockets implementation dropped it"}, /* 10052 */{WSAENETRESET, "The connection must be reset because the Windows Sockets implementation dropped it"},
/* 10053 */{WSAECONNABORTED, "The virtual circuit was aborted due to timeout or other failure"}, /* 10053 */{WSAECONNABORTED, "The virtual circuit was aborted due to timeout or other failure"},
/* 10054 */{WSAECONNRESET, "The virtual circuit was reset by the remote side"}, /* 10054 */{WSAECONNRESET, "The virtual circuit was reset by the remote side"},
/* 10055 */{WSAENOBUFS, "No buffer space is available or a buffer deadlock has occured. The socket cannot be created"}, /* 10055 */{WSAENOBUFS, "No buffer space is available or a buffer deadlock has occurred. The socket cannot be created"},
/* 10056 */{WSAEISCONN, "The socket is already connected"}, /* 10056 */{WSAEISCONN, "The socket is already connected"},
/* 10057 */{WSAENOTCONN, "The socket is not connected"}, /* 10057 */{WSAENOTCONN, "The socket is not connected"},
/* 10058 */{WSAESHUTDOWN, "The socket has been shutdown"}, /* 10058 */{WSAESHUTDOWN, "The socket has been shutdown"},
/* 10059 */{WSAETOOMANYREFS, "BSD: Too many references"}, /* 10059 */{WSAETOOMANYREFS, "BSD: Too many references"},
/* 10060 */{WSAETIMEDOUT, "Attempt to connect timed out without establishing a connection"}, /* 10060 */{WSAETIMEDOUT, "Attempt to connect timed out without establishing a connection"},
/* 10061 */{WSAECONNREFUSED, "Connection was refused"}, /* 10061 */{WSAECONNREFUSED, "Connection was refused"},
/* 10062 */{WSAELOOP, "Undocumented WinSock error code used in BSD"}, /* 10062 */{WSAELOOP, "Undocumented WinSock error code used in BSD"},
/* 10063 */{WSAENAMETOOLONG, "Undocumented WinSock error code used in BSD"}, /* 10063 */{WSAENAMETOOLONG, "Undocumented WinSock error code used in BSD"},
/* 10064 */{WSAEHOSTDOWN, "Undocumented WinSock error code used in BSD"}, /* 10064 */{WSAEHOSTDOWN, "Undocumented WinSock error code used in BSD"},
/* 10065 */{WSAEHOSTUNREACH, "No route to host"}, /* 10065 */{WSAEHOSTUNREACH, "No route to host"},
/* 10066 */{WSAENOTEMPTY, "Undocumented WinSock error code"}, /* 10066 */{WSAENOTEMPTY, "Undocumented WinSock error code"},
/* 10067 */{WSAEPROCLIM, "Undocumented WinSock error code"}, /* 10067 */{WSAEPROCLIM, "Undocumented WinSock error code"},
/* 10068 */{WSAEUSERS, "Undocumented WinSock error code"}, /* 10068 */{WSAEUSERS, "Undocumented WinSock error code"},
/* 10069 */{WSAEDQUOT, "Undocumented WinSock error code"}, /* 10069 */{WSAEDQUOT, "Undocumented WinSock error code"},
/* 10070 */{WSAESTALE, "Undocumented WinSock error code"}, /* 10070 */{WSAESTALE, "Undocumented WinSock error code"},
/* 10071 */{WSAEREMOTE, "Undocumented WinSock error code"}, /* 10071 */{WSAEREMOTE, "Undocumented WinSock error code"},
/* 10091 */{WSASYSNOTREADY, "Underlying network subsytem is not ready for network communication"}, /* 10091 */{WSASYSNOTREADY, "Underlying network subsystem is not ready for network communication"},
/* 10092 */{WSAVERNOTSUPPORTED, "The version of WinSock API support requested is not provided in this implementation"}, /* 10092 */{WSAVERNOTSUPPORTED, "The version of WinSock API support requested is not provided in this implementation"},
/* 10093 */{WSANOTINITIALISED, "WinSock subsystem not properly initialized"}, /* 10093 */{WSANOTINITIALISED, "WinSock subsystem not properly initialized"},
/* 10101 */{WSAEDISCON, "Virtual circuit has gracefully terminated connection"}, /* 10101 */{WSAEDISCON, "Virtual circuit has gracefully terminated connection"},
/* 11001 */{WSAHOST_NOT_FOUND, "The specified host is unknown"}, /* 11001 */{WSAHOST_NOT_FOUND, "The specified host is unknown"},
/* 11002 */{WSATRY_AGAIN, "A temporary error occurred on an authoritative name server"}, /* 11002 */{WSATRY_AGAIN, "A temporary error occurred on an authoritative name server"},
/* 11003 */{WSANO_RECOVERY, "A non-recoverable name server error occurred"}, /* 11003 */{WSANO_RECOVERY, "A non-recoverable name server error occurred"},
/* 11004 */{WSANO_DATA, "The requested name is valid but does not have an IP address"}, /* 11004 */{WSANO_DATA, "The requested name is valid but does not have an IP address"},
/* end */{0, NULL} /* end */{0, NULL}
}; };
for (unsigned int i = 0; s_netErrorCodes[i].m_code != 0; ++i) { for (unsigned int i = 0; s_netErrorCodes[i].m_code != 0; ++i) {

View File

@ -90,7 +90,7 @@ public:
ARCH_APP_UTIL& appUtil() { return m_appUtil; } ARCH_APP_UTIL& appUtil() { return m_appUtil; }
virtual IArchTaskBarReceiver* taskBarReceiver() const { return m_taskBarReceiver; } virtual IArchTaskBarReceiver* taskBarReceiver() const { return m_taskBarReceiver; }
virtual void setByeFunc(void(*bye)(int)) { m_bye = bye; } virtual void setByeFunc(void(*bye)(int)) { m_bye = bye; }
virtual void bye(int error) { m_bye(error); } virtual void bye(int error) { m_bye(error); }

View File

@ -373,7 +373,7 @@ ArgParser::splitCommandString(String& command, std::vector<String>& argv)
if (space > leftDoubleQuote && space < rightDoubleQuote) { if (space > leftDoubleQuote && space < rightDoubleQuote) {
ignoreThisSpace = true; ignoreThisSpace = true;
} }
else if (space > rightDoubleQuote){ else if (space > rightDoubleQuote) {
searchDoubleQuotes(command, leftDoubleQuote, rightDoubleQuote, rightDoubleQuote + 1); searchDoubleQuotes(command, leftDoubleQuote, rightDoubleQuote, rightDoubleQuote + 1);
} }

View File

@ -56,7 +56,7 @@ public:
//! Deactivate screen saver //! Deactivate screen saver
/*! /*!
Deactivate (i.e. hide) the screen saver, reseting the screen saver Deactivate (i.e. hide) the screen saver, resetting the screen saver
timer. timer.
*/ */
virtual void deactivate() = 0; virtual void deactivate() = 0;

View File

@ -267,8 +267,8 @@ extern const char* kMsgDSetOptions;
// 2 means the file transfer is finished. // 2 means the file transfer is finished.
extern const char* kMsgDFileTransfer; extern const char* kMsgDFileTransfer;
// drag infomation: primary <-> secondary // drag information: primary <-> secondary
// transfer drag infomation. The first 2 bytes are used for storing // transfer drag information. The first 2 bytes are used for storing
// the number of dragging objects. Then the following string consists // the number of dragging objects. Then the following string consists
// of each object's directory. // of each object's directory.
extern const char* kMsgDDragInfo; extern const char* kMsgDDragInfo;

View File

@ -62,7 +62,7 @@ Log::Log()
{ {
assert(s_log == NULL); assert(s_log == NULL);
// other initalization // other initialization
m_maxPriority = g_defaultMaxPriority; m_maxPriority = g_defaultMaxPriority;
m_maxNewlineLength = 0; m_maxNewlineLength = 0;
insert(new ConsoleLogOutputter); insert(new ConsoleLogOutputter);

View File

@ -119,7 +119,7 @@ public:
*/ */
NetworkAddress getServerAddress() const; NetworkAddress getServerAddress() const;
//! Return true if recieved file size is valid //! Return true if received file size is valid
bool isReceivedFileSizeValid(); bool isReceivedFileSizeValid();
//! Return expected file size //! Return expected file size

View File

@ -45,7 +45,7 @@ const std::string& DataDirectories::global(const std::string& path)
const std::string& DataDirectories::systemconfig() const std::string& DataDirectories::systemconfig()
{ {
// systemconfig() is a special case in that it will track the current value // systemconfig() is a special case in that it will track the current value
// of global() unless and until it is explictly set otherwise // of global() unless and until it is explicitly set otherwise
// previously it would default to the windows folder which was horrible! // previously it would default to the windows folder which was horrible!
if (_systemconfig.empty()) if (_systemconfig.empty())
return global(); return global();

View File

@ -25,7 +25,7 @@ class IJob;
//! Thread handle //! Thread handle
/*! /*!
Creating a Thread creates a new context of execution (i.e. thread) that Creating a Thread creates a new context of execution (i.e. thread) that
runs simulatenously with the calling thread. A Thread is only a handle runs simultaneously with the calling thread. A Thread is only a handle
to a thread; deleting a Thread does not cancel or destroy the thread it to a thread; deleting a Thread does not cancel or destroy the thread it
refers to and multiple Thread objects can refer to the same thread. refers to and multiple Thread objects can refer to the same thread.
@ -122,7 +122,7 @@ public:
/*! /*!
Change the priority of the thread. Normal priority is 0, 1 is Change the priority of the thread. Normal priority is 0, 1 is
the next lower, etc. -1 is the next higher, etc. but boosting the next lower, etc. -1 is the next higher, etc. but boosting
the priority may not be permitted and will be silenty ignored. the priority may not be permitted and will be silently ignored.
*/ */
void setPriority(int n); void setPriority(int n);

View File

@ -43,7 +43,7 @@ public:
If \c hostname can be parsed as a numerical address then that's how If \c hostname can be parsed as a numerical address then that's how
it's used, otherwise it's used as a host name. If \c hostname ends it's used, otherwise it's used as a host name. If \c hostname ends
in ":[0-9]+" then that suffix is extracted and used as the port, in ":[0-9]+" then that suffix is extracted and used as the port,
overridding the port parameter. The resulting port must be a valid overriding the port parameter. The resulting port must be a valid
port number (zero is not a valid port number) otherwise \c XSocketAddress port number (zero is not a valid port number) otherwise \c XSocketAddress
is thrown with an error of \c XSocketAddress::kBadPort. The hostname is thrown with an error of \c XSocketAddress::kBadPort. The hostname
is not resolved by the c'tor; use \c resolve to do that. is not resolved by the c'tor; use \c resolve to do that.

View File

@ -24,7 +24,7 @@ class IEventQueue;
class SocketMultiplexer; class SocketMultiplexer;
class IDataSocket; class IDataSocket;
class SecureListenSocket : public TCPListenSocket{ class SecureListenSocket : public TCPListenSocket {
public: public:
SecureListenSocket(IEventQueue* events, SecureListenSocket(IEventQueue* events,
SocketMultiplexer* socketMultiplexer, SocketMultiplexer* socketMultiplexer,

View File

@ -658,7 +658,7 @@ SecureSocket::disconnect()
void SecureSocket::formatFingerprint(std::string& fingerprint, bool hex, bool separator) void SecureSocket::formatFingerprint(std::string& fingerprint, bool hex, bool separator)
{ {
if (hex) { if (hex) {
// to hexidecimal // to hexadecimal
barrier::string::toHex(fingerprint, 2); barrier::string::toHex(fingerprint, 2);
} }
@ -666,7 +666,7 @@ void SecureSocket::formatFingerprint(std::string& fingerprint, bool hex, bool se
barrier::string::uppercase(fingerprint); barrier::string::uppercase(fingerprint);
if (separator) { if (separator) {
// add colon to separate each 2 charactors // add colon to separate each 2 characters
size_t separators = fingerprint.size() / 2; size_t separators = fingerprint.size() / 2;
for (size_t i = 1; i < separators; i++) { for (size_t i = 1; i < separators; i++) {
fingerprint.insert(i * 3 - 1, ":"); fingerprint.insert(i * 3 - 1, ":");
@ -830,7 +830,7 @@ SecureSocket::showSecureCipherInfo()
} }
#if OPENSSL_VERSION_NUMBER < 0x10100000L #if OPENSSL_VERSION_NUMBER < 0x10100000L
// m_ssl->m_ssl->session->ciphers is not forward compatable, // m_ssl->m_ssl->session->ciphers is not forward compatible,
// In future release of OpenSSL, it's not visible, // In future release of OpenSSL, it's not visible,
STACK_OF(SSL_CIPHER) * cStack = m_ssl->m_ssl->session->ciphers; STACK_OF(SSL_CIPHER) * cStack = m_ssl->m_ssl->session->ciphers;
#else #else

View File

@ -33,4 +33,4 @@ public:
virtual ~IMSWindowsClipboardFacade() { } virtual ~IMSWindowsClipboardFacade() { }
}; };
#endif #endif

View File

@ -50,4 +50,4 @@ static void add_key(const char * const buffer, std::vector<DWORD> &keys)
} }
} }
return true; return true;
} }

View File

@ -803,7 +803,7 @@ MSWindowsDesks::checkDesk()
// if active desktop changed then tell the old and new desk threads // if active desktop changed then tell the old and new desk threads
// about the change. don't switch desktops when the screensaver is // about the change. don't switch desktops when the screensaver is
// active becaue we'd most likely switch to the screensaver desktop // active because we'd most likely switch to the screensaver desktop
// which would have the side effect of forcing the screensaver to // which would have the side effect of forcing the screensaver to
// stop. // stop.
if (name != m_activeDeskName && !m_screensaver->isActive()) { if (name != m_activeDeskName && !m_screensaver->isActive()) {

View File

@ -30,4 +30,4 @@ bool WindowsHookResource::unset()
} }
bool WindowsHookResource::is_set() const { return _hook != NULL; } bool WindowsHookResource::is_set() const { return _hook != NULL; }
WindowsHookResource::operator HHOOK() const { return _hook; } WindowsHookResource::operator HHOOK() const { return _hook; }

View File

@ -17,4 +17,4 @@ public:
private: private:
HHOOK _hook; HHOOK _hook;
}; };

View File

@ -1330,7 +1330,7 @@ MSWindowsKeyState::getKeyID(UINT virtualKey, KeyButton button) const
if ((LOWORD(m_keyLayout) & 0xffffu) == 0x0412u) { // 0x0412 : Korean Locale ID if ((LOWORD(m_keyLayout) & 0xffffu) == 0x0412u) { // 0x0412 : Korean Locale ID
if (virtualKey == VK_HANGUL || virtualKey == VK_HANJA) { if (virtualKey == VK_HANGUL || virtualKey == VK_HANJA) {
// If shift-space is used to change the input mode, // If shift-space is used to change the input mode,
// the extented bit is not set. So add it to get right key id. // the extended bit is not set. So add it to get right key id.
button |= 0x100u; button |= 0x100u;
} }
} }

View File

@ -94,7 +94,7 @@ MSWindowsSession::isProcessInSession(const char* name, PHANDLE process = NULL)
} }
std::string nameListJoin; std::string nameListJoin;
for(std::list<std::string>::iterator it = nameList.begin(); for (std::list<std::string>::iterator it = nameList.begin();
it != nameList.end(); it++) { it != nameList.end(); it++) {
nameListJoin.append(*it); nameListJoin.append(*it);
nameListJoin.append(", "); nameListJoin.append(", ");

View File

@ -81,7 +81,7 @@ private:
//! Relauncher error //! Relauncher error
/*! /*!
An error occured in the process watchdog. An error occurred in the process watchdog.
*/ */
class XMSWindowsWatchdogError : public XBarrier { class XMSWindowsWatchdogError : public XBarrier {
public: public:

View File

@ -52,7 +52,7 @@ OSXClipboard::OSXClipboard() :
OSStatus syncErr = PasteboardSynchronize(m_pboard); OSStatus syncErr = PasteboardSynchronize(m_pboard);
if (syncErr != noErr) { if (syncErr != noErr) {
LOG((CLOG_DEBUG "failed to syncronize clipboard: error %i", syncErr)); LOG((CLOG_DEBUG "failed to synchronize clipboard: error %i", syncErr));
} }
} }

View File

@ -30,9 +30,9 @@ void
runCocoaApp() runCocoaApp()
{ {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
[NSApplication sharedApplication]; [NSApplication sharedApplication];
NSWindow* window = [[NSWindow alloc] NSWindow* window = [[NSWindow alloc]
initWithContentRect: NSMakeRect(0, 0, 3, 3) initWithContentRect: NSMakeRect(0, 0, 3, 3)
styleMask: NSBorderlessWindowMask styleMask: NSBorderlessWindowMask
@ -41,16 +41,16 @@ runCocoaApp()
[window setTitle: @""]; [window setTitle: @""];
[window setAlphaValue:0.1]; [window setAlphaValue:0.1];
[window makeKeyAndOrderFront:nil]; [window makeKeyAndOrderFront:nil];
OSXDragView* dragView = [[OSXDragView alloc] initWithFrame:NSMakeRect(0, 0, 3, 3)]; OSXDragView* dragView = [[OSXDragView alloc] initWithFrame:NSMakeRect(0, 0, 3, 3)];
g_dragWindow = window; g_dragWindow = window;
g_dragView = dragView; g_dragView = dragView;
[window setContentView: dragView]; [window setContentView: dragView];
NSLog(@"starting cocoa loop"); NSLog(@"starting cocoa loop");
[NSApp run]; [NSApp run];
NSLog(@"cocoa: release"); NSLog(@"cocoa: release");
[pool release]; [pool release];
} }
@ -65,25 +65,25 @@ void
fakeDragging(const char* str, int cursorX, int cursorY) fakeDragging(const char* str, int cursorX, int cursorY)
{ {
g_ext = [NSString stringWithUTF8String:str]; g_ext = [NSString stringWithUTF8String:str];
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
NSRect screen = [[NSScreen mainScreen] frame]; NSRect screen = [[NSScreen mainScreen] frame];
NSLog ( @"screen size: witdh = %f height = %f", screen.size.width, screen.size.height); NSLog ( @"screen size: width = %f height = %f", screen.size.width, screen.size.height);
NSLog ( @"mouseLocation: %d %d", cursorX, cursorY); NSLog ( @"mouseLocation: %d %d", cursorX, cursorY);
int newPosX = 0; int newPosX = 0;
int newPosY = 0; int newPosY = 0;
newPosX = cursorX - 1; newPosX = cursorX - 1;
newPosY = screen.size.height - cursorY - 1; newPosY = screen.size.height - cursorY - 1;
NSRect rect = NSMakeRect(newPosX, newPosY, 3, 3); NSRect rect = NSMakeRect(newPosX, newPosY, 3, 3);
NSLog ( @"newPosX: %d", newPosX); NSLog ( @"newPosX: %d", newPosX);
NSLog ( @"newPosY: %d", newPosY); NSLog ( @"newPosY: %d", newPosY);
[g_dragWindow setFrame:rect display:NO]; [g_dragWindow setFrame:rect display:NO];
[g_dragWindow makeKeyAndOrderFront:nil]; [g_dragWindow makeKeyAndOrderFront:nil];
[NSApp activateIgnoringOtherApps:YES]; [NSApp activateIgnoringOtherApps:YES];
[g_dragView setFileExt:g_ext]; [g_dragView setFileExt:g_ext];
CGEventRef down = CGEventCreateMouseEvent(CGEventSourceCreate(kCGEventSourceStateHIDSystemState), kCGEventLeftMouseDown, CGPointMake(cursorX, cursorY), kCGMouseButtonLeft); CGEventRef down = CGEventCreateMouseEvent(CGEventSourceCreate(kCGEventSourceStateHIDSystemState), kCGEventLeftMouseDown, CGPointMake(cursorX, cursorY), kCGMouseButtonLeft);

View File

@ -2,11 +2,11 @@
* barrier -- mouse and keyboard sharing utility * barrier -- mouse and keyboard sharing utility
* Copyright (C) 2012-2016 Symless Ltd. * Copyright (C) 2012-2016 Symless Ltd.
* Copyright (C) 2004 Chris Schoeneman * Copyright (C) 2004 Chris Schoeneman
* *
* This package is free software; you can redistribute it and/or * This package is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* found in the file LICENSE that should have accompanied this file. * found in the file LICENSE that should have accompanied this file.
* *
* This package is distributed in the hope that it will be useful, * This package is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@ -110,10 +110,10 @@ OSXScreen::OSXScreen(IEventQueue* events, bool isPrimary, bool autoShowHideCurso
updateScreenShape(m_displayID, 0); updateScreenShape(m_displayID, 0);
m_screensaver = new OSXScreenSaver(m_events, getEventTarget()); m_screensaver = new OSXScreenSaver(m_events, getEventTarget());
m_keyState = new OSXKeyState(m_events); m_keyState = new OSXKeyState(m_events);
// only needed when running as a server. // only needed when running as a server.
if (m_isPrimary) { if (m_isPrimary) {
#if defined(MAC_OS_X_VERSION_10_9) #if defined(MAC_OS_X_VERSION_10_9)
// we can't pass options to show the dialog, this must be done by the gui. // we can't pass options to show the dialog, this must be done by the gui.
if (!AXIsProcessTrusted()) { if (!AXIsProcessTrusted()) {
@ -126,7 +126,7 @@ OSXScreen::OSXScreen(IEventQueue* events, bool isPrimary, bool autoShowHideCurso
} }
#endif #endif
} }
// install display manager notification handler // install display manager notification handler
CGDisplayRegisterReconfigurationCallback(displayReconfigurationCallback, this); CGDisplayRegisterReconfigurationCallback(displayReconfigurationCallback, this);
@ -166,7 +166,7 @@ OSXScreen::OSXScreen(IEventQueue* events, bool isPrimary, bool autoShowHideCurso
if (m_switchEventHandlerRef != 0) { if (m_switchEventHandlerRef != 0) {
RemoveEventHandler(m_switchEventHandlerRef); RemoveEventHandler(m_switchEventHandlerRef);
} }
CGDisplayRemoveReconfigurationCallback(displayReconfigurationCallback, this); CGDisplayRemoveReconfigurationCallback(displayReconfigurationCallback, this);
delete m_keyState; delete m_keyState;
@ -217,7 +217,7 @@ OSXScreen::~OSXScreen()
delete m_keyState; delete m_keyState;
delete m_screensaver; delete m_screensaver;
#if defined(MAC_OS_X_VERSION_10_7) #if defined(MAC_OS_X_VERSION_10_7)
delete m_carbonLoopMutex; delete m_carbonLoopMutex;
delete m_carbonLoopReady; delete m_carbonLoopReady;
@ -273,7 +273,7 @@ OSXScreen::warpCursor(SInt32 x, SInt32 y)
pos.x = x; pos.x = x;
pos.y = y; pos.y = y;
CGWarpMouseCursorPosition(pos); CGWarpMouseCursorPosition(pos);
// save new cursor position // save new cursor position
m_xCursor = x; m_xCursor = x;
m_yCursor = y; m_yCursor = y;
@ -325,7 +325,7 @@ OSXScreen::registerHotKey(KeyID key, KeyModifierMask mask)
LOG((CLOG_DEBUG "could not map hotkey id=%04x mask=%04x", key, mask)); LOG((CLOG_DEBUG "could not map hotkey id=%04x mask=%04x", key, mask));
return 0; return 0;
} }
// choose hotkey id // choose hotkey id
UInt32 id; UInt32 id;
if (!m_oldHotKeyIDs.empty()) { if (!m_oldHotKeyIDs.empty()) {
@ -351,7 +351,7 @@ OSXScreen::registerHotKey(KeyID key, KeyModifierMask mask)
} }
else { else {
EventHotKeyID hkid = { 'SNRG', (UInt32)id }; EventHotKeyID hkid = { 'SNRG', (UInt32)id };
OSStatus status = RegisterEventHotKey(macKey, macMask, hkid, OSStatus status = RegisterEventHotKey(macKey, macMask, hkid,
GetApplicationEventTarget(), 0, GetApplicationEventTarget(), 0,
&ref); &ref);
okay = (status == noErr); okay = (status == noErr);
@ -366,7 +366,7 @@ OSXScreen::registerHotKey(KeyID key, KeyModifierMask mask)
} }
m_hotKeys.insert(std::make_pair(id, HotKeyItem(ref, macKey, macMask))); m_hotKeys.insert(std::make_pair(id, HotKeyItem(ref, macKey, macMask)));
LOG((CLOG_DEBUG "registered hotkey %s (id=%04x mask=%04x) as id=%d", barrier::KeyMap::formatKey(key, mask).c_str(), key, mask, id)); LOG((CLOG_DEBUG "registered hotkey %s (id=%04x mask=%04x) as id=%d", barrier::KeyMap::formatKey(key, mask).c_str(), key, mask, id));
return id; return id;
} }
@ -468,7 +468,7 @@ OSXScreen::postMouseEvent(CGPoint& pos) const
} }
} }
} }
CGEventType type = kCGEventMouseMoved; CGEventType type = kCGEventMouseMoved;
SInt8 button = m_buttonState.getFirstButtonDown(); SInt8 button = m_buttonState.getFirstButtonDown();
@ -478,10 +478,10 @@ OSXScreen::postMouseEvent(CGPoint& pos) const
} }
CGEventRef event = CGEventCreateMouseEvent(NULL, type, pos, static_cast<CGMouseButton>(button)); CGEventRef event = CGEventCreateMouseEvent(NULL, type, pos, static_cast<CGMouseButton>(button));
// Dragging events also need the click state // Dragging events also need the click state
CGEventSetIntegerValueField(event, kCGMouseEventClickState, m_clickState); CGEventSetIntegerValueField(event, kCGMouseEventClickState, m_clickState);
// Fix for sticky keys // Fix for sticky keys
CGEventFlags modifiers = m_keyState->getModifierStateAsOSXFlags(); CGEventFlags modifiers = m_keyState->getModifierStateAsOSXFlags();
CGEventSetFlags(event, modifiers); CGEventSetFlags(event, modifiers);
@ -503,7 +503,7 @@ OSXScreen::postMouseEvent(CGPoint& pos) const
CGEventSetDoubleValueField(event, kCGMouseEventDeltaY, deltaFY); CGEventSetDoubleValueField(event, kCGMouseEventDeltaY, deltaFY);
CGEventPost(kCGHIDEventTap, event); CGEventPost(kCGHIDEventTap, event);
CFRelease(event); CFRelease(event);
} }
@ -515,7 +515,7 @@ OSXScreen::fakeMouseButton(ButtonID id, bool press)
if (index >= NumButtonIDs) { if (index >= NumButtonIDs) {
return; return;
} }
CGPoint pos; CGPoint pos;
if (!m_cursorPosValid) { if (!m_cursorPosValid) {
SInt32 x, y; SInt32 x, y;
@ -533,55 +533,55 @@ OSXScreen::fakeMouseButton(ButtonID id, bool press)
// since we don't have double click distance in NX APIs // since we don't have double click distance in NX APIs
// we define our own defaults. // we define our own defaults.
const double maxDiff = sqrt(2) + 0.0001; const double maxDiff = sqrt(2) + 0.0001;
double clickTime = [NSEvent doubleClickInterval]; double clickTime = [NSEvent doubleClickInterval];
// As long as the click is within the time window and distance window // As long as the click is within the time window and distance window
// increase clickState (double click, triple click, etc) // increase clickState (double click, triple click, etc)
// This will allow for higher than triple click but the quartz documenation // This will allow for higher than triple click but the quartz documentation
// does not specify that this should be limited to triple click // does not specify that this should be limited to triple click
if (press) { if (press) {
if ((ARCH->time() - m_lastClickTime) <= clickTime && diff <= maxDiff){ if ((ARCH->time() - m_lastClickTime) <= clickTime && diff <= maxDiff) {
m_clickState++; m_clickState++;
} }
else { else {
m_clickState = 1; m_clickState = 1;
} }
m_lastClickTime = ARCH->time(); m_lastClickTime = ARCH->time();
} }
if (m_clickState == 1){ if (m_clickState == 1) {
m_lastSingleClickXCursor = m_xCursor; m_lastSingleClickXCursor = m_xCursor;
m_lastSingleClickYCursor = m_yCursor; m_lastSingleClickYCursor = m_yCursor;
} }
EMouseButtonState state = press ? kMouseButtonDown : kMouseButtonUp; EMouseButtonState state = press ? kMouseButtonDown : kMouseButtonUp;
LOG((CLOG_DEBUG1 "faking mouse button id: %d press: %s", index, press ? "pressed" : "released")); LOG((CLOG_DEBUG1 "faking mouse button id: %d press: %s", index, press ? "pressed" : "released"));
MouseButtonEventMapType thisButtonMap = MouseButtonEventMap[index]; MouseButtonEventMapType thisButtonMap = MouseButtonEventMap[index];
CGEventType type = thisButtonMap[state]; CGEventType type = thisButtonMap[state];
CGEventRef event = CGEventCreateMouseEvent(NULL, type, pos, static_cast<CGMouseButton>(index)); CGEventRef event = CGEventCreateMouseEvent(NULL, type, pos, static_cast<CGMouseButton>(index));
CGEventSetIntegerValueField(event, kCGMouseEventClickState, m_clickState); CGEventSetIntegerValueField(event, kCGMouseEventClickState, m_clickState);
// Fix for sticky keys // Fix for sticky keys
CGEventFlags modifiers = m_keyState->getModifierStateAsOSXFlags(); CGEventFlags modifiers = m_keyState->getModifierStateAsOSXFlags();
CGEventSetFlags(event, modifiers); CGEventSetFlags(event, modifiers);
m_buttonState.set(index, state); m_buttonState.set(index, state);
CGEventPost(kCGHIDEventTap, event); CGEventPost(kCGHIDEventTap, event);
CFRelease(event); CFRelease(event);
if (!press && (id == kButtonLeft)) { if (!press && (id == kButtonLeft)) {
if (m_fakeDraggingStarted) { if (m_fakeDraggingStarted) {
m_getDropTargetThread = new Thread(new TMethodJob<OSXScreen>( m_getDropTargetThread = new Thread(new TMethodJob<OSXScreen>(
this, &OSXScreen::getDropTargetThread)); this, &OSXScreen::getDropTargetThread));
} }
m_draggingStarted = false; m_draggingStarted = false;
} }
} }
@ -591,21 +591,21 @@ OSXScreen::getDropTargetThread(void*)
{ {
#if defined(MAC_OS_X_VERSION_10_7) #if defined(MAC_OS_X_VERSION_10_7)
char* cstr = NULL; char* cstr = NULL;
// wait for 5 secs for the drop destinaiton string to be filled. // wait for 5 secs for the drop destinaiton string to be filled.
UInt32 timeout = ARCH->time() + 5; UInt32 timeout = ARCH->time() + 5;
while (ARCH->time() < timeout) { while (ARCH->time() < timeout) {
CFStringRef cfstr = getCocoaDropTarget(); CFStringRef cfstr = getCocoaDropTarget();
cstr = CFStringRefToUTF8String(cfstr); cstr = CFStringRefToUTF8String(cfstr);
CFRelease(cfstr); CFRelease(cfstr);
if (cstr != NULL) { if (cstr != NULL) {
break; break;
} }
ARCH->sleep(.1f); ARCH->sleep(.1f);
} }
if (cstr != NULL) { if (cstr != NULL) {
LOG((CLOG_DEBUG "drop target: %s", cstr)); LOG((CLOG_DEBUG "drop target: %s", cstr));
m_dropTarget = cstr; m_dropTarget = cstr;
@ -626,12 +626,12 @@ OSXScreen::fakeMouseMove(SInt32 x, SInt32 y)
if (m_fakeDraggingStarted) { if (m_fakeDraggingStarted) {
m_buttonState.set(0, kMouseButtonDown); m_buttonState.set(0, kMouseButtonDown);
} }
// index 0 means left mouse button // index 0 means left mouse button
if (m_buttonState.test(0)) { if (m_buttonState.test(0)) {
m_draggingStarted = true; m_draggingStarted = true;
} }
// synthesize event // synthesize event
CGPoint pos; CGPoint pos;
pos.x = x; pos.x = x;
@ -679,11 +679,11 @@ OSXScreen::fakeMouseWheel(SInt32 xDelta, SInt32 yDelta) const
NULL, kCGScrollEventUnitLine, 2, NULL, kCGScrollEventUnitLine, 2,
mapScrollWheelFromBarrier(yDelta), mapScrollWheelFromBarrier(yDelta),
-mapScrollWheelFromBarrier(xDelta)); -mapScrollWheelFromBarrier(xDelta));
// Fix for sticky keys // Fix for sticky keys
CGEventFlags modifiers = m_keyState->getModifierStateAsOSXFlags(); CGEventFlags modifiers = m_keyState->getModifierStateAsOSXFlags();
CGEventSetFlags(scrollEvent, modifiers); CGEventSetFlags(scrollEvent, modifiers);
CGEventPost(kCGHIDEventTap, scrollEvent); CGEventPost(kCGHIDEventTap, scrollEvent);
CFRelease(scrollEvent); CFRelease(scrollEvent);
} }
@ -754,11 +754,11 @@ OSXScreen::enable()
if (m_isPrimary) { if (m_isPrimary) {
// FIXME -- start watching jump zones // FIXME -- start watching jump zones
// kCGEventTapOptionDefault = 0x00000000 (Missing in 10.4, so specified literally) // kCGEventTapOptionDefault = 0x00000000 (Missing in 10.4, so specified literally)
m_eventTapPort = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, m_eventTapPort = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault,
kCGEventMaskForAllEvents, kCGEventMaskForAllEvents,
handleCGInputEvent, handleCGInputEvent,
this); this);
} }
else { else {
@ -773,10 +773,10 @@ OSXScreen::enable()
// there may be a better way to do this, but we register an event handler even if we're // there may be a better way to do this, but we register an event handler even if we're
// not on the primary display (acting as a client). This way, if a local event comes in // not on the primary display (acting as a client). This way, if a local event comes in
// (either keyboard or mouse), we can make sure to show the cursor if we've hidden it. // (either keyboard or mouse), we can make sure to show the cursor if we've hidden it.
m_eventTapPort = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, m_eventTapPort = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault,
kCGEventMaskForAllEvents, kCGEventMaskForAllEvents,
handleCGInputEventSecondary, handleCGInputEventSecondary,
this); this);
} }
@ -798,9 +798,9 @@ OSXScreen::disable()
if (m_autoShowHideCursor) { if (m_autoShowHideCursor) {
showCursor(); showCursor();
} }
// FIXME -- stop watching jump zones, stop capturing input // FIXME -- stop watching jump zones, stop capturing input
if (m_eventTapRLSR) { if (m_eventTapRLSR) {
CFRunLoopRemoveSource(CFRunLoopGetCurrent(), m_eventTapRLSR, kCFRunLoopDefaultMode); CFRunLoopRemoveSource(CFRunLoopGetCurrent(), m_eventTapRLSR, kCFRunLoopDefaultMode);
CFRelease(m_eventTapRLSR); CFRelease(m_eventTapRLSR);
@ -846,7 +846,7 @@ OSXScreen::enter()
io_registry_entry_t entry = IORegistryEntryFromPath( io_registry_entry_t entry = IORegistryEntryFromPath(
kIOMasterPortDefault, kIOMasterPortDefault,
"IOService:/IOResources/IODisplayWrangler"); "IOService:/IOResources/IODisplayWrangler");
if (entry != MACH_PORT_NULL) { if (entry != MACH_PORT_NULL) {
IORegistryEntrySetCFProperty(entry, CFSTR("IORequestIdle"), kCFBooleanFalse); IORegistryEntrySetCFProperty(entry, CFSTR("IORequestIdle"), kCFBooleanFalse);
IOObjectRelease(entry); IOObjectRelease(entry);
@ -863,15 +863,15 @@ bool
OSXScreen::leave() OSXScreen::leave()
{ {
hideCursor(); hideCursor();
if (isDraggingStarted()) { if (isDraggingStarted()) {
String& fileList = getDraggingFilename(); String& fileList = getDraggingFilename();
if (!m_isPrimary) { if (!m_isPrimary) {
if (fileList.empty() == false) { if (fileList.empty() == false) {
ClientApp& app = ClientApp::instance(); ClientApp& app = ClientApp::instance();
Client* client = app.getClientPtr(); Client* client = app.getClientPtr();
DragInformation di; DragInformation di;
di.setFilename(fileList); di.setFilename(fileList);
DragFileList dragFileList; DragFileList dragFileList;
@ -881,7 +881,7 @@ OSXScreen::leave()
dragFileList, info); dragFileList, info);
client->sendDragInfo(fileCount, info, info.size()); client->sendDragInfo(fileCount, info, info.size());
LOG((CLOG_DEBUG "send dragging file to server")); LOG((CLOG_DEBUG "send dragging file to server"));
// TODO: what to do with multiple file or even // TODO: what to do with multiple file or even
// a folder // a folder
client->sendFileToServer(fileList.c_str()); client->sendFileToServer(fileList.c_str());
@ -889,7 +889,7 @@ OSXScreen::leave()
} }
m_draggingStarted = false; m_draggingStarted = false;
} }
if (m_isPrimary) { if (m_isPrimary) {
avoidHesitatingCursor(); avoidHesitatingCursor();
@ -906,8 +906,8 @@ OSXScreen::setClipboard(ClipboardID, const IClipboard* src)
{ {
if (src != NULL) { if (src != NULL) {
LOG((CLOG_DEBUG "setting clipboard")); LOG((CLOG_DEBUG "setting clipboard"));
Clipboard::copy(&m_pasteboard, src); Clipboard::copy(&m_pasteboard, src);
} }
return true; return true;
} }
@ -1036,16 +1036,16 @@ OSXScreen::handleSystemEvent(const Event& event, void*)
} }
break; break;
case kEventClassKeyboard: case kEventClassKeyboard:
switch (GetEventKind(*carbonEvent)) { switch (GetEventKind(*carbonEvent)) {
case kEventHotKeyPressed: case kEventHotKeyPressed:
case kEventHotKeyReleased: case kEventHotKeyReleased:
onHotKey(*carbonEvent); onHotKey(*carbonEvent);
break; break;
} }
break; break;
case kEventClassWindow: case kEventClassWindow:
// 2nd param was formerly GetWindowEventTarget(m_userInputWindow) which is 32-bit only, // 2nd param was formerly GetWindowEventTarget(m_userInputWindow) which is 32-bit only,
// however as m_userInputWindow is never initialized to anything we can take advantage of // however as m_userInputWindow is never initialized to anything we can take advantage of
@ -1076,7 +1076,7 @@ OSXScreen::handleSystemEvent(const Event& event, void*)
} }
} }
bool bool
OSXScreen::onMouseMove(CGFloat mx, CGFloat my) OSXScreen::onMouseMove(CGFloat mx, CGFloat my)
{ {
LOG((CLOG_DEBUG2 "mouse move %+f,%+f", mx, my)); LOG((CLOG_DEBUG2 "mouse move %+f,%+f", mx, my));
@ -1140,7 +1140,7 @@ OSXScreen::onMouseMove(CGFloat mx, CGFloat my)
return true; return true;
} }
bool bool
OSXScreen::onMouseButton(bool pressed, UInt16 macButton) OSXScreen::onMouseButton(bool pressed, UInt16 macButton)
{ {
// Buttons 2 and 3 are inverted on the mac // Buttons 2 and 3 are inverted on the mac
@ -1176,7 +1176,7 @@ OSXScreen::onMouseButton(bool pressed, UInt16 macButton)
} }
} }
} }
if (macButton == kButtonLeft) { if (macButton == kButtonLeft) {
EMouseButtonState state = pressed ? kMouseButtonDown : kMouseButtonUp; EMouseButtonState state = pressed ? kMouseButtonDown : kMouseButtonUp;
m_buttonState.set(kButtonLeft - 1, state); m_buttonState.set(kButtonLeft - 1, state);
@ -1189,7 +1189,7 @@ OSXScreen::onMouseButton(bool pressed, UInt16 macButton)
m_getDropTargetThread = new Thread(new TMethodJob<OSXScreen>( m_getDropTargetThread = new Thread(new TMethodJob<OSXScreen>(
this, &OSXScreen::getDropTargetThread)); this, &OSXScreen::getDropTargetThread));
} }
m_draggingStarted = false; m_draggingStarted = false;
} }
} }
@ -1218,16 +1218,16 @@ OSXScreen::displayReconfigurationCallback(CGDirectDisplayID displayID, CGDisplay
// Closing or opening the lid when an external monitor is // Closing or opening the lid when an external monitor is
// connected causes an kCGDisplayBeginConfigurationFlag event // connected causes an kCGDisplayBeginConfigurationFlag event
CGDisplayChangeSummaryFlags mask = kCGDisplayBeginConfigurationFlag | kCGDisplayMovedFlag | CGDisplayChangeSummaryFlags mask = kCGDisplayBeginConfigurationFlag | kCGDisplayMovedFlag |
kCGDisplaySetModeFlag | kCGDisplayAddFlag | kCGDisplayRemoveFlag | kCGDisplaySetModeFlag | kCGDisplayAddFlag | kCGDisplayRemoveFlag |
kCGDisplayEnabledFlag | kCGDisplayDisabledFlag | kCGDisplayEnabledFlag | kCGDisplayDisabledFlag |
kCGDisplayMirrorFlag | kCGDisplayUnMirrorFlag | kCGDisplayMirrorFlag | kCGDisplayUnMirrorFlag |
kCGDisplayDesktopShapeChangedFlag; kCGDisplayDesktopShapeChangedFlag;
LOG((CLOG_DEBUG1 "event: display was reconfigured: %x %x %x", flags, mask, flags & mask)); LOG((CLOG_DEBUG1 "event: display was reconfigured: %x %x %x", flags, mask, flags & mask));
if (flags & mask) { /* Something actually did change */ if (flags & mask) { /* Something actually did change */
LOG((CLOG_DEBUG1 "event: screen changed shape; refreshing dimensions")); LOG((CLOG_DEBUG1 "event: screen changed shape; refreshing dimensions"));
screen->updateScreenShape(displayID, flags); screen->updateScreenShape(displayID, flags);
} }
@ -1274,7 +1274,7 @@ OSXScreen::onKey(CGEventRef event)
m_activeModifierHotKeyMask = 0; m_activeModifierHotKeyMask = 0;
} }
} }
return true; return true;
} }
@ -1342,7 +1342,7 @@ OSXScreen::onKey(CGEventRef event)
} }
void void
OSXScreen::onMediaKey(CGEventRef event) OSXScreen::onMediaKey(CGEventRef event)
{ {
KeyID keyID; KeyID keyID;
bool down; bool down;
@ -1405,7 +1405,7 @@ OSXScreen::mapBarrierButtonToMac(UInt16 button) const
return static_cast<ButtonID>(button); return static_cast<ButtonID>(button);
} }
ButtonID ButtonID
OSXScreen::mapMacButtonToBarrier(UInt16 macButton) const OSXScreen::mapMacButtonToBarrier(UInt16 macButton) const
{ {
switch (macButton) { switch (macButton) {
@ -1418,7 +1418,7 @@ OSXScreen::mapMacButtonToBarrier(UInt16 macButton) const
case 3: case 3:
return kButtonMiddle; return kButtonMiddle;
} }
return static_cast<ButtonID>(macButton); return static_cast<ButtonID>(macButton);
} }
@ -1445,8 +1445,8 @@ OSXScreen::getScrollSpeed() const
double scaling = 0.0; double scaling = 0.0;
CFPropertyListRef pref = ::CFPreferencesCopyValue( CFPropertyListRef pref = ::CFPreferencesCopyValue(
CFSTR("com.apple.scrollwheel.scaling") , CFSTR("com.apple.scrollwheel.scaling") ,
kCFPreferencesAnyApplication, kCFPreferencesAnyApplication,
kCFPreferencesCurrentUser, kCFPreferencesCurrentUser,
kCFPreferencesAnyHost); kCFPreferencesAnyHost);
if (pref != NULL) { if (pref != NULL) {
@ -1535,7 +1535,7 @@ OSXScreen::updateScreenShape()
if (CGGetActiveDisplayList(0, NULL, &displayCount) != CGDisplayNoErr) { if (CGGetActiveDisplayList(0, NULL, &displayCount) != CGDisplayNoErr) {
return; return;
} }
if (displayCount == 0) { if (displayCount == 0) {
return; return;
} }
@ -1579,13 +1579,13 @@ OSXScreen::updateScreenShape()
(displayCount == 1) ? "display" : "displays")); (displayCount == 1) ? "display" : "displays"));
} }
#pragma mark - #pragma mark -
// //
// FAST USER SWITCH NOTIFICATION SUPPORT // FAST USER SWITCH NOTIFICATION SUPPORT
// //
// OSXScreen::userSwitchCallback(void*) // OSXScreen::userSwitchCallback(void*)
// //
// gets called if a fast user switch occurs // gets called if a fast user switch occurs
// //
@ -1611,14 +1611,14 @@ OSXScreen::userSwitchCallback(EventHandlerCallRef nextHandler,
return (CallNextEventHandler(nextHandler, theEvent)); return (CallNextEventHandler(nextHandler, theEvent));
} }
#pragma mark - #pragma mark -
// //
// SLEEP/WAKEUP NOTIFICATION SUPPORT // SLEEP/WAKEUP NOTIFICATION SUPPORT
// //
// OSXScreen::watchSystemPowerThread(void*) // OSXScreen::watchSystemPowerThread(void*)
// //
// main of thread monitoring system power (sleep/wakup) using a CFRunLoop // main of thread monitoring system power (sleep/wakeup) using a CFRunLoop
// //
void void
@ -1641,7 +1641,7 @@ OSXScreen::watchSystemPowerThread(void*)
CFRunLoopAddSource(m_pmRunloop, runloopSourceRef, CFRunLoopAddSource(m_pmRunloop, runloopSourceRef,
kCFRunLoopCommonModes); kCFRunLoopCommonModes);
} }
// thread is ready // thread is ready
{ {
Lock lock(m_pmMutex); Lock lock(m_pmMutex);
@ -1658,15 +1658,15 @@ OSXScreen::watchSystemPowerThread(void*)
} }
LOG((CLOG_DEBUG "started watchSystemPowerThread")); LOG((CLOG_DEBUG "started watchSystemPowerThread"));
LOG((CLOG_DEBUG "waiting for event loop")); LOG((CLOG_DEBUG "waiting for event loop"));
m_events->waitForReady(); m_events->waitForReady();
#if defined(MAC_OS_X_VERSION_10_7) #if defined(MAC_OS_X_VERSION_10_7)
{ {
Lock lockCarbon(m_carbonLoopMutex); Lock lockCarbon(m_carbonLoopMutex);
if (*m_carbonLoopReady == false) { if (*m_carbonLoopReady == false) {
// we signalling carbon loop ready before starting // we signalling carbon loop ready before starting
// unless we know how to do it within the loop // unless we know how to do it within the loop
LOG((CLOG_DEBUG "signalling carbon loop ready")); LOG((CLOG_DEBUG "signalling carbon loop ready"));
@ -1676,12 +1676,12 @@ OSXScreen::watchSystemPowerThread(void*)
} }
} }
#endif #endif
// start the run loop // start the run loop
LOG((CLOG_DEBUG "starting carbon loop")); LOG((CLOG_DEBUG "starting carbon loop"));
CFRunLoopRun(); CFRunLoopRun();
LOG((CLOG_DEBUG "carbon loop has stopped")); LOG((CLOG_DEBUG "carbon loop has stopped"));
// cleanup // cleanup
if (notificationPortRef) { if (notificationPortRef) {
CFRunLoopRemoveSource(m_pmRunloop, CFRunLoopRemoveSource(m_pmRunloop,
@ -1716,7 +1716,7 @@ OSXScreen::handlePowerChangeRequest(natural_t messageType, void* messageArg)
getEventTarget(), messageArg, getEventTarget(), messageArg,
Event::kDontFreeData)); Event::kDontFreeData));
return; return;
case kIOMessageSystemHasPoweredOn: case kIOMessageSystemHasPoweredOn:
LOG((CLOG_DEBUG "system wakeup")); LOG((CLOG_DEBUG "system wakeup"));
m_events->addEvent(Event(m_events->forIScreen().resume(), m_events->addEvent(Event(m_events->forIScreen().resume(),
@ -1742,16 +1742,16 @@ OSXScreen::handleConfirmSleep(const Event& event, void*)
if (m_pmRootPort != 0) { if (m_pmRootPort != 0) {
// deliver suspend event immediately. // deliver suspend event immediately.
m_events->addEvent(Event(m_events->forIScreen().suspend(), m_events->addEvent(Event(m_events->forIScreen().suspend(),
getEventTarget(), NULL, getEventTarget(), NULL,
Event::kDeliverImmediately)); Event::kDeliverImmediately));
LOG((CLOG_DEBUG "system will sleep")); LOG((CLOG_DEBUG "system will sleep"));
IOAllowPowerChange(m_pmRootPort, messageArg); IOAllowPowerChange(m_pmRootPort, messageArg);
} }
} }
} }
#pragma mark - #pragma mark -
// //
// GLOBAL HOTKEY OPERATING MODE SUPPORT (10.3) // GLOBAL HOTKEY OPERATING MODE SUPPORT (10.3)
@ -1941,7 +1941,7 @@ OSXScreen::handleCGInputEvent(CGEventTapProxy proxy,
case kCGEventMouseMoved: case kCGEventMouseMoved:
pos = CGEventGetLocation(event); pos = CGEventGetLocation(event);
screen->onMouseMove(pos.x, pos.y); screen->onMouseMove(pos.x, pos.y);
// The system ignores our cursor-centering calls if // The system ignores our cursor-centering calls if
// we don't return the event. This should be harmless, // we don't return the event. This should be harmless,
// but might register as slight movement to other apps // but might register as slight movement to other apps
@ -1980,10 +1980,10 @@ OSXScreen::handleCGInputEvent(CGEventTapProxy proxy,
} }
break; break;
} }
LOG((CLOG_DEBUG3 "unknown quartz event type: 0x%02x", type)); LOG((CLOG_DEBUG3 "unknown quartz event type: 0x%02x", type));
} }
if (screen->m_isOnScreen) { if (screen->m_isOnScreen) {
return event; return event;
} else { } else {
@ -1992,38 +1992,38 @@ OSXScreen::handleCGInputEvent(CGEventTapProxy proxy,
} }
void void
OSXScreen::MouseButtonState::set(UInt32 button, EMouseButtonState state) OSXScreen::MouseButtonState::set(UInt32 button, EMouseButtonState state)
{ {
bool newState = (state == kMouseButtonDown); bool newState = (state == kMouseButtonDown);
m_buttons.set(button, newState); m_buttons.set(button, newState);
} }
bool bool
OSXScreen::MouseButtonState::any() OSXScreen::MouseButtonState::any()
{ {
return m_buttons.any(); return m_buttons.any();
} }
void void
OSXScreen::MouseButtonState::reset() OSXScreen::MouseButtonState::reset()
{ {
m_buttons.reset(); m_buttons.reset();
} }
void void
OSXScreen::MouseButtonState::overwrite(UInt32 buttons) OSXScreen::MouseButtonState::overwrite(UInt32 buttons)
{ {
m_buttons = std::bitset<NumButtonIDs>(buttons); m_buttons = std::bitset<NumButtonIDs>(buttons);
} }
bool bool
OSXScreen::MouseButtonState::test(UInt32 button) const OSXScreen::MouseButtonState::test(UInt32 button) const
{ {
return m_buttons.test(button); return m_buttons.test(button);
} }
SInt8 SInt8
OSXScreen::MouseButtonState::getFirstButtonDown() const OSXScreen::MouseButtonState::getFirstButtonDown() const
{ {
if (m_buttons.any()) { if (m_buttons.any()) {
for (unsigned short button = 0; button < m_buttons.size(); button++) { for (unsigned short button = 0; button < m_buttons.size(); button++) {
@ -2041,7 +2041,7 @@ OSXScreen::CFStringRefToUTF8String(CFStringRef aString)
if (aString == NULL) { if (aString == NULL) {
return NULL; return NULL;
} }
CFIndex length = CFStringGetLength(aString); CFIndex length = CFStringGetLength(aString);
CFIndex maxSize = CFStringGetMaximumSizeForEncoding( CFIndex maxSize = CFStringGetMaximumSizeForEncoding(
length, length,

View File

@ -115,7 +115,7 @@ private:
// the X display // the X display
Display* m_display; Display* m_display;
// window to receive xscreensaver repsonses // window to receive xscreensaver responses
Window m_xscreensaverSink; Window m_xscreensaverSink;
// the target for the events we generate // the target for the events we generate

View File

@ -1136,9 +1136,9 @@ Server::processOptions()
return; return;
} }
m_switchNeedsShift = false; // it seems if i don't add these m_switchNeedsShift = false; // it seems if I don't add these
m_switchNeedsControl = false; // lines, the 'reload config' option m_switchNeedsControl = false; // lines, the 'reload config' option
m_switchNeedsAlt = false; // doesnt' work correct. m_switchNeedsAlt = false; // doesn't work correct.
bool newRelativeMoves = m_relativeMoves; bool newRelativeMoves = m_relativeMoves;
for (Config::ScreenOptions::const_iterator index = options->begin(); for (Config::ScreenOptions::const_iterator index = options->begin();

View File

@ -167,7 +167,7 @@ public:
*/ */
void getClients(std::vector<std::string>& list) const; void getClients(std::vector<std::string>& list) const;
//! Return true if recieved file size is valid //! Return true if received file size is valid
bool isReceivedFileSizeValid(); bool isReceivedFileSizeValid();
//! Return expected file data size //! Return expected file data size
@ -357,7 +357,7 @@ private:
// force the cursor off of \p client // force the cursor off of \p client
void forceLeaveClient(BaseClientProxy* client); void forceLeaveClient(BaseClientProxy* client);
// thread funciton for sending file // thread function for sending file
void sendFileThread(void*); void sendFileThread(void*);
// thread function for writing file to drop directory // thread function for writing file to drop directory