This repository has been archived by the owner. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
brahma-dev/synergy-stable-builds
symless/synergy-core
Albicorp/synergy
AwesomeDoesIt/synergy
Bakalchuk/synergy
BogdanLivadariu/synergy
BorisChiou/synergy
Charcol/synergy
Coolred/synergy
Craigk109/synergy
DALDEI/synergy
DavidST44/synergy
DiegoSousa/synergy
DonnaWuDongxia/synergy
Dracophoenix1/synergy
Flare183/synergy
HerrGrumps/synergy
HomeTheaterOperatingSystem/synergy-core
Independent-Scientist/synergy
JaapSuter/synergy
JimDu/synergy
Joiningss/synergy
JoshMcCullough/synergy
KentVu/synergy
Lesthat/synergy
LiangChen0322/synergy
MarceColl/synergy
Mebus/synergy
MikeKnieriem/synergy
Nihil7354/synergy
OrangeUtan/synergy-stable-builds
ProjectLeaf/synergy
RaccoonTeam/synergy
RafalXXL/synergy
SeniorCoder1025/synergy
Sevea/synergy-1
SheaReinke/synergy
Toasterfist/synergy
UIKit0/synergy
Werror/synergy
Wkryst/synergy
XelaRellum/synergy
ahwagner/synergy
aladagli/synergy
alancapc/synergy
alex-deng/synergy
alexzzp/synergy
amitkr/synergy
andyesi/synergy
anthraxx/synergyunfuck
artisdom/synergy
artiya4u/synergy
astamatix/synergy
austin-laney/synergy
axela74/synergy
ballifatih/synergy
barisi/synergy
beedz/synergy
blnk2007/synergy
caramis/synergy
carballude/synergy
cardonator/synergy
carlosfvp/synergy
carstenlaengerer/synergy
cchwann/synergy
changdongsheng/synergy
chaomengnan/synergy
chedlin/synergy
chengguangnan/synergy
cjliu20152/synergy
clonkymonk/synergy
cribe78/synergy
dannon/synergy
darongE/synergy
davidchanff/synergy
dcrum/synergy
debauchee/barrier
deliangyang/synergy
dguerri/synergy
dijkstraj/synergy
divegeek/synergy
dpereira/synergy
dpolivy/synergy
duboisp/synergy
eaglecomp01/synergy
edwardsp/synergy
elitvinenko/synergy
fashioncj/synergy
fatdollar/synergy
fc205/synergy
feng-ye/synergy
fenggao86/synergy
fernandodeperto/synergy
frank-emrich/synergy
frankmanzhu/synergy
fuckobama/synergy
funixfu/synergy
fuzhuo/synergy
galkinvv/synergy
ghostreiter/synergy
gitscrubz/synergy
gtorressfdc/synergy
guangyue/synergy
hanks42/synergy
hanoseok/synergy
hcxiong/synergy
heathschweitzer/synergy
helkanen/synergy
hifi-dd/synergy
hoaluvn/synergy
hyei/synergy
iamcxa/synergy
ichengde/synergy
inche-ali/synergy
itchanges/synergy
iurnah/synergy
jcoming/synergy
jpmcmu/synergy
jpwhiting/synergy
julian-amaya/synergy
kaixinsoft/synergy
karolw/synergy
kash4kev/synergy
kellyhuberty/synergy
kissfu/synergy
kmrbrierley/synergy
ko7m/synergy
liuhuimin/synergy
lookat119/synergy
lukeqsun/synergy
makaanneo/synergy-1
margaritis/synergy
mcamiano/synergy
mcanthony/synergy
md11235/synergy
meowfaceman/synergy
midnite8177/synergy
moben/synergy
moodboom/synergy
museroom/synergy
neilmayhew/synergy
neuroradiology/synergy
nmadhok/synergy
noital/synergy
nyetwurk/synergy
ommokazza/synergy
onlymee/synergy
pdecat/synergy
peteo/synergy-stable-builds
phackss/synergy
piboye/synergy
ptg001/synergy
qbektrix/synergy
rajserc/synergy
ralluri/synergy
rmagnuson/synergy
saburahu/synergy
saiksy/synergy
sami1971/synergy
sarvex/synergy
scorpblog/synergy
sebpardo/synergy
serenemoon/synergy
shanesims/synergy
sharkpp/synergy
shaunliz/synergy
shawnanastasio/synergy
sl1pm4t/synergy
smittex/synergy
solokacher/synergy
songei/synergy-core
spurin/synergy
stelonix/synergy
stipid/synergy
terry2010/synergy
the-wes/synergy
thesoftwarejedi/synergy
timmui/synergy
tpraturi/synergy
utwodownson/synergy
vaginessa/synergy
whereyougo/synergy
willleslie/synergy
wjcsharp/synergy
wolrah/synergy
xiaoping378/synergy
xiyuanHou/synergy
xuerik/synergy
yajun0601/synergy
yangchengwork/synergy
yarec/synergy
ylluminate/synergy
yucheng82/synergy
yulin0629/synergy
yupi2/synergy
yyppaag/synergy
zbrode/synergy
zdndanny/synergy
zengyijie/synergy
zhanglongqi/synergy
Nothing to show
...
Choose a Head Repository
brahma-dev/synergy-stable-builds
symless/synergy-core
Albicorp/synergy
AwesomeDoesIt/synergy
Bakalchuk/synergy
BogdanLivadariu/synergy
BorisChiou/synergy
Charcol/synergy
Coolred/synergy
Craigk109/synergy
DALDEI/synergy
DavidST44/synergy
DiegoSousa/synergy
DonnaWuDongxia/synergy
Dracophoenix1/synergy
Flare183/synergy
HerrGrumps/synergy
HomeTheaterOperatingSystem/synergy-core
Independent-Scientist/synergy
JaapSuter/synergy
JimDu/synergy
Joiningss/synergy
JoshMcCullough/synergy
KentVu/synergy
Lesthat/synergy
LiangChen0322/synergy
MarceColl/synergy
Mebus/synergy
MikeKnieriem/synergy
Nihil7354/synergy
OrangeUtan/synergy-stable-builds
ProjectLeaf/synergy
RaccoonTeam/synergy
RafalXXL/synergy
SeniorCoder1025/synergy
Sevea/synergy-1
SheaReinke/synergy
Toasterfist/synergy
UIKit0/synergy
Werror/synergy
Wkryst/synergy
XelaRellum/synergy
ahwagner/synergy
aladagli/synergy
alancapc/synergy
alex-deng/synergy
alexzzp/synergy
amitkr/synergy
andyesi/synergy
anthraxx/synergyunfuck
artisdom/synergy
artiya4u/synergy
astamatix/synergy
austin-laney/synergy
axela74/synergy
ballifatih/synergy
barisi/synergy
beedz/synergy
blnk2007/synergy
caramis/synergy
carballude/synergy
cardonator/synergy
carlosfvp/synergy
carstenlaengerer/synergy
cchwann/synergy
changdongsheng/synergy
chaomengnan/synergy
chedlin/synergy
chengguangnan/synergy
cjliu20152/synergy
clonkymonk/synergy
cribe78/synergy
dannon/synergy
darongE/synergy
davidchanff/synergy
dcrum/synergy
debauchee/barrier
deliangyang/synergy
dguerri/synergy
dijkstraj/synergy
divegeek/synergy
dpereira/synergy
dpolivy/synergy
duboisp/synergy
eaglecomp01/synergy
edwardsp/synergy
elitvinenko/synergy
fashioncj/synergy
fatdollar/synergy
fc205/synergy
feng-ye/synergy
fenggao86/synergy
fernandodeperto/synergy
frank-emrich/synergy
frankmanzhu/synergy
fuckobama/synergy
funixfu/synergy
fuzhuo/synergy
galkinvv/synergy
ghostreiter/synergy
gitscrubz/synergy
gtorressfdc/synergy
guangyue/synergy
hanks42/synergy
hanoseok/synergy
hcxiong/synergy
heathschweitzer/synergy
helkanen/synergy
hifi-dd/synergy
hoaluvn/synergy
hyei/synergy
iamcxa/synergy
ichengde/synergy
inche-ali/synergy
itchanges/synergy
iurnah/synergy
jcoming/synergy
jpmcmu/synergy
jpwhiting/synergy
julian-amaya/synergy
kaixinsoft/synergy
karolw/synergy
kash4kev/synergy
kellyhuberty/synergy
kissfu/synergy
kmrbrierley/synergy
ko7m/synergy
liuhuimin/synergy
lookat119/synergy
lukeqsun/synergy
makaanneo/synergy-1
margaritis/synergy
mcamiano/synergy
mcanthony/synergy
md11235/synergy
meowfaceman/synergy
midnite8177/synergy
moben/synergy
moodboom/synergy
museroom/synergy
neilmayhew/synergy
neuroradiology/synergy
nmadhok/synergy
noital/synergy
nyetwurk/synergy
ommokazza/synergy
onlymee/synergy
pdecat/synergy
peteo/synergy-stable-builds
phackss/synergy
piboye/synergy
ptg001/synergy
qbektrix/synergy
rajserc/synergy
ralluri/synergy
rmagnuson/synergy
saburahu/synergy
saiksy/synergy
sami1971/synergy
sarvex/synergy
scorpblog/synergy
sebpardo/synergy
serenemoon/synergy
shanesims/synergy
sharkpp/synergy
shaunliz/synergy
shawnanastasio/synergy
sl1pm4t/synergy
smittex/synergy
solokacher/synergy
songei/synergy-core
spurin/synergy
stelonix/synergy
stipid/synergy
terry2010/synergy
the-wes/synergy
thesoftwarejedi/synergy
timmui/synergy
tpraturi/synergy
utwodownson/synergy
vaginessa/synergy
whereyougo/synergy
willleslie/synergy
wjcsharp/synergy
wolrah/synergy
xiaoping378/synergy
xiyuanHou/synergy
xuerik/synergy
yajun0601/synergy
yangchengwork/synergy
yarec/synergy
ylluminate/synergy
yucheng82/synergy
yulin0629/synergy
yupi2/synergy
yyppaag/synergy
zbrode/synergy
zdndanny/synergy
zengyijie/synergy
zhanglongqi/synergy
Nothing to show
Commits on Dec 05, 2016
Commits on Dec 12, 2016
Commits on Dec 28, 2016
Commits on Jan 18, 2017
Commits on Jan 19, 2017
Commits on Jan 21, 2017
Commits on Jan 25, 2017
#4477 Only allow mouse buttons 1-10 for XTestFakeButtons call.
These are the only valid ones:
[~]>for i in `seq 0 1 11`; do echo Testing $i; xte "mouseclick $i"; done
Testing 0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  132 (XTEST)
  Minor opcode of failed request:  2 (X_XTestFakeInput)
  Value in failed request:  0x0
  Serial number of failed request:  12
  Current serial number in output stream:  15
Testing 1
Testing 2
Testing 3
Testing 4
Testing 5
Testing 6
Testing 7
Testing 8
Testing 9
Testing 10
Testing 11
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  132 (XTEST)
  Minor opcode of failed request:  2 (X_XTestFakeInput)
  Value in failed request:  0xb
  Serial number of failed request:  12

And there are mice out there where buttons 11+ can be pressed accidentally,
terminating the synergy client and often leaving the system in a bad state.
#3992 macOS: Dragging broken in Unity
OSXScreen was not adding mouse movement deltas to mouse events while
dragging. Some 3D applications rely on these deltas to implement
dragging. Adding the mouse deltas to the mouse event fixes dragging in
these applications. Ex: Unity3d
#5578 Virtual key table mapped for inactive IMEs
Virtual key table is mapped for all IMEs not just active IME.

And this causes the wrong modifier key to be pressed. For example, if you use Korean and Japanese IMEs, pressing the Hangul key makes alt key pressed. So when I press just 'a', client interprets that as 'alt-a'.
Commits on Jan 31, 2017
Commits on Feb 06, 2017
XRandR: fix screen size calculation
XWindowsScreen::saveShape() using XRRSizes / XRRRotations to
calculate screen dimensions when XRandR and a rotated screen
was detected. This is wrong. The screen dimensions in the
display properties already reflect rotation.

Moreover, on servers supporting XRandR >= 1.2, the XRRSizes()
and XRRRotations calls from XRandR 1.1 will return the
properties of the "primary output" in XRandR 1.2 terms rather than
the properties of the entire screen.
Commits on Feb 12, 2017
Commits on Mar 03, 2017
Commits on Jan 08, 2018
@@ -27,4 +27,6 @@ Client: Applesoft Windy OS 10
* Is there a way to work around it? No/Yes, you can...
* Does this bug prevent you from using Synergy entirely? Yes/No
+Please follow the link below to send us logs from both your server and client sides if it's appropriate. https://github.com/symless/synergy/wiki/Sending-logs
+
Put anything else you can think of here.
View
@@ -17,7 +17,7 @@
# Version number for Synergy
set(VERSION_MAJOR 1)
set(VERSION_MINOR 8)
-set(VERSION_REV 6)
+set(VERSION_REV 8)
set(VERSION_STAGE stable)
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REV}")
@@ -74,11 +74,6 @@ endif()
# Depending on the platform, pass in the required defines.
if (UNIX)
-
- # warnings as errors:
- # we have a problem with people checking in code with warnings.
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-unused-local-typedef")
-
if (NOT APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
endif()
View
@@ -1,3 +1,22 @@
+v1.8.8
+==========
+Bug #5196 - Some keys on Korean and Japanese keyboards have the same keycode
+Bug #5578 - Pressing Hangul key results in alt+'a'
+Bug #5785 - Can't switch screens when cursor is in a corner
+Bug #3992 - macOS: Dragging is broken in Unity 3D
+Bug #5075 - macOS: Build fails on macOS 10.9 due to unknown compiler flag
+Bug #5809 - macOS: No version number is shown in the App Info dialog
+Bug #3197 - Linux: switchDoubleTap option is not working
+Bug #4477 - Linux: Mouse buttons higher than id 10 result in crash
+Bug #5832 - Linux: Screen size misdetected on multi-monitor display
+Enhancement #4504 - Improved Korean language description
+Enhancement #5525 - Added support for precise screen positioning in config file
+Enhancement #4290 - Windows: Removed annoying alt+print screen functionality
+
+v1.8.7-stable
+=============
+Bug #5784 - Edition changes when reopening GUI
+
v1.8.6-stable
=============
Bug #5592 - Some keys don't work for macOS Sierra clients
View
@@ -7,10 +7,7 @@ Synergy is free and open source (free as in free speech),
meaning you are free to run it and redistribute it with
or without changes.
-Just use "hm conf" and "hm build" to compile (./hm.sh on
-Linux and Mac).
-
-For detailed compile instructions:
-https://github.com/symless/synergy/wiki/Compiling
-
Happy hacking!
+
+#### Installation:
+- [Raspbian](https://github.com/OrangeUtan/synergy-stable-builds/blob/master/install_rasbian.md)
View
@@ -0,0 +1,20 @@
+### BUILD
+- "sudo apt-get install gcc cmake libx11-dev libxtst-dev qt4-dev-tools libcurl4-openssl-dev libssl-dev libssl-dev libavahi-compat-libdnssd-dev"
+- "cd ~/Downloads"
+- "wget https://github.com/OrangeUtan/synergy-stable-builds/archive/v1.8.8-stable.zip"
+- "unzip v1.8.8-stable.zip"
+- "vim synergy-stable-builds-1.8.8-stable/src/lib/net/SecureSocket.cpp"
+change line 810 'm_ssl->m_ssl->session->ciphers' to 'SSL_get_client_ciphers(m_ssl->m_ssl)' \
+- "./hm.sh conf -g1"
+- "./hm.sh build"
+
+### INSTALL
+- cd ~/Downloads
+- "cp synergy-stable-builds-1.8.8-stable/bin /usr/bin"
+
+### ISSUES:
+- connection to server with SSL fails:
+ - start synergyc in debug mode: "synergyc -f -d DEBUG2 --enable-crypto -n name 123.456.789.01"
+ - look for "NOTE: server fingerprint: FI:NG:GE:RP:IN:TH:ER:E5 \n ERROR: failed to verify ...."
+ - copy and append fingerprint to ~/.synergy/SSL/Fingerprints/TrustedServers.txt
+
@@ -36,11 +36,11 @@
<language ietfCode="ar" name="العربية" />
<language ietfCode="pes-IR" name="فارسی" />
<language ietfCode="ur" name="اردو" />
- <language ietfCode="mr" name="मराठी" />
+ <language ietfCode="mr" name="मराठी" />
<language ietfCode="si" name="Sඉන්හල" />
<language ietfCode="th-TH" name="ภาษาไทย" />
<language ietfCode="zh-CN" name="中文 (简体)" />
<language ietfCode="zh-TW" name="中文 (繁體)" />
<language ietfCode="ja-JP" name="日本語" />
- <language ietfCode="ko" name="한국의" />
+ <language ietfCode="ko" name="한국어" />
</languages>
View
@@ -1,20 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
-<dict>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
- <key>CFBundleIconFile</key>
- <string>Synergy.icns</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleExecutable</key>
- <string>Synergy</string>
- <key>CFBundleIdentifier</key>
- <string>synergy</string>
-</dict>
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDisplayName</key>
+ <string>Synergy</string>
+ <key>CFBundleExecutable</key>
+ <string>Synergy</string>
+ <key>CFBundleIconFile</key>
+ <string>Synergy.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>synergy</string>
+ <!-- TODO: Fix this in v2.0 //-->
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Synergy</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.8.8</string>
+ <key>CFBundleVersion</key>
+ <string>1.8.8</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>© 2012-2016, Symless Ltd</string>
+ </dict>
</plist>
@@ -44,7 +44,7 @@ LicenseManager::setSerialKey(SerialKey serialKey, bool acceptExpired)
using std::swap;
swap (serialKey, m_serialKey);
m_AppConfig->setSerialKey(QString::fromStdString
- (serialKey.toString()));
+ (m_serialKey.toString()));
emit serialKeyChanged(m_serialKey);
if (serialKey.isTrial()) {
View
@@ -119,8 +119,8 @@ int waitForTray()
if (++trayAttempts > TRAY_RETRY_COUNT)
{
QMessageBox::critical(NULL, "Synergy",
- QObject::tr("System tray is unavailable, quitting."));
- return false;
+ QObject::tr("System tray is unavailable, don't close your window."));
+ return true;
}
QThreadImpl::msleep(TRAY_RETRY_WAIT);
@@ -61,11 +61,11 @@ const KeyID MSWindowsKeyState::s_virtualKey[] =
/* 0x012 */ { kKeyAlt_L }, // VK_MENU
/* 0x013 */ { kKeyPause }, // VK_PAUSE
/* 0x014 */ { kKeyCapsLock }, // VK_CAPITAL
- /* 0x015 */ { kKeyHangulKana }, // VK_HANGUL, VK_KANA
+ /* 0x015 */ { kKeyKana }, // VK_HANGUL, VK_KANA
/* 0x016 */ { kKeyNone }, // undefined
/* 0x017 */ { kKeyNone }, // VK_JUNJA
/* 0x018 */ { kKeyNone }, // VK_FINAL
- /* 0x019 */ { kKeyHanjaKanzi }, // VK_KANJI
+ /* 0x019 */ { kKeyKanzi }, // VK_HANJA, VK_KANJI
/* 0x01a */ { kKeyNone }, // undefined
/* 0x01b */ { kKeyEscape }, // VK_ESCAPE
/* 0x01c */ { kKeyHenkan }, // VK_CONVERT
@@ -318,11 +318,11 @@ const KeyID MSWindowsKeyState::s_virtualKey[] =
/* 0x112 */ { kKeyAlt_R }, // VK_MENU
/* 0x113 */ { kKeyNone }, // VK_PAUSE
/* 0x114 */ { kKeyNone }, // VK_CAPITAL
- /* 0x115 */ { kKeyNone }, // VK_KANA
- /* 0x116 */ { kKeyNone }, // VK_HANGUL
+ /* 0x115 */ { kKeyHangul }, // VK_HANGUL
+ /* 0x116 */ { kKeyNone }, // undefined
/* 0x117 */ { kKeyNone }, // VK_JUNJA
/* 0x118 */ { kKeyNone }, // VK_FINAL
- /* 0x119 */ { kKeyNone }, // VK_KANJI
+ /* 0x119 */ { kKeyHanja }, // VK_HANJA
/* 0x11a */ { kKeyNone }, // undefined
/* 0x11b */ { kKeyNone }, // VK_ESCAPE
/* 0x11c */ { kKeyNone }, // VK_CONVERT
@@ -728,6 +728,10 @@ MSWindowsKeyState::mapKeyFromEvent(WPARAM charAndVirtKey,
// that so we clear it.
active &= ~s_controlAlt;
}
+ if (id == kKeyHangul) {
+ // If shift-space is used to change input mode, clear shift modifier.
+ active &= ~KeyModifierShift;
+ }
*maskOut = active;
}
@@ -1071,13 +1075,8 @@ MSWindowsKeyState::getKeyMap(synergy::KeyMap& keyMap)
}
}
- // add alt+printscreen
- if (m_buttonToVK[0x54u] == 0) {
- m_buttonToVK[0x54u] = VK_SNAPSHOT;
- }
-
// set virtual key to button table
- if (GetKeyboardLayout(0) == m_groups[g]) {
+ if (activeLayout == m_groups[g]) {
for (KeyButton i = 0; i < 512; ++i) {
if (m_buttonToVK[i] != 0) {
if (m_virtualKeyToButton[m_buttonToVK[i]] == 0) {
@@ -1339,8 +1338,20 @@ MSWindowsKeyState::setWindowGroup(SInt32 group)
}
KeyID
-MSWindowsKeyState::getKeyID(UINT virtualKey, KeyButton button)
+MSWindowsKeyState::getKeyID(UINT virtualKey, KeyButton button) const
{
+ // Some virtual keycodes have same values.
+ // VK_HANGUL == VK_KANA, VK_HANJA == NK_KANJI
+ // which are used to change the input mode of IME.
+ // But they have different X11 keysym. So we should distinguish them.
+ if ((LOWORD(m_keyLayout) & 0xffffu) == 0x0412u) { // 0x0412 : Korean Locale ID
+ if (virtualKey == VK_HANGUL || virtualKey == VK_HANJA) {
+ // If shift-space is used to change the input mode,
+ // the extented bit is not set. So add it to get right key id.
+ button |= 0x100u;
+ }
+ }
+
if ((button & 0x100u) != 0) {
virtualKey += 0x100u;
}
@@ -1392,3 +1403,4 @@ MSWindowsKeyState::addKeyEntry(synergy::KeyMap& keyMap, synergy::KeyMap::KeyItem
m_keyToVKMap[item.m_id] = static_cast<UINT>(item.m_client);
}
}
+
@@ -122,7 +122,7 @@ class MSWindowsKeyState : public KeyState {
(button should include the extended key bit), or kKeyNone if there is
no such key.
*/
- static KeyID getKeyID(UINT virtualKey, KeyButton button);
+ KeyID getKeyID(UINT virtualKey, KeyButton button) const;
//! Map button to virtual key
/*!
@@ -496,7 +496,23 @@
// Fix for sticky keys
CGEventFlags modifiers = m_keyState->getModifierStateAsOSXFlags();
CGEventSetFlags(event, modifiers);
-
+
+ // Set movement deltas to fix issues with certain 3D programs
+ SInt64 deltaX = pos.x;
+ deltaX -= m_xCursor;
+
+ SInt64 deltaY = pos.y;
+ deltaY -= m_yCursor;
+
+ CGEventSetIntegerValueField(event, kCGMouseEventDeltaX, deltaX);
+ CGEventSetIntegerValueField(event, kCGMouseEventDeltaY, deltaY);
+
+ double deltaFX = deltaX;
+ double deltaFY = deltaY;
+
+ CGEventSetDoubleValueField(event, kCGMouseEventDeltaX, deltaFX);
+ CGEventSetDoubleValueField(event, kCGMouseEventDeltaY, deltaFY);
+
CGEventPost(kCGHIDEventTap, event);
CFRelease(event);
@@ -160,15 +160,12 @@ XWindowsScreen::XWindowsScreen(
// primary/secondary screen only initialization
if (m_isPrimary) {
- // start watching for events on other windows
- selectEvents(m_root);
+#ifdef HAVE_XI2
m_xi2detected = detectXI2();
-
if (m_xi2detected) {
-#ifdef HAVE_XI2
selectXIRawMotion();
-#endif
} else
+#endif
{
// start watching for events on other windows
selectEvents(m_root);
@@ -745,7 +742,7 @@ XWindowsScreen::registerHotKey(KeyID key, KeyModifierMask mask)
LOG((CLOG_WARN "failed to register hotkey %s (id=%04x mask=%04x)", synergy::KeyMap::formatKey(key, mask).c_str(), key, mask));
return 0;
}
-
+
LOG((CLOG_DEBUG "registered hotkey %s (id=%04x mask=%04x) as id=%d", synergy::KeyMap::formatKey(key, mask).c_str(), key, mask, id));
return id;
}
@@ -827,7 +824,7 @@ void
XWindowsScreen::fakeMouseButton(ButtonID button, bool press)
{
const unsigned int xButton = mapButtonToX(button);
- if (xButton != 0) {
+ if (xButton > 0 && xButton < 11) {
XTestFakeButtonEvent(m_display, xButton,
press ? True : False, CurrentTime);
XFlush(m_display);
@@ -977,22 +974,6 @@ XWindowsScreen::saveShape()
m_w = WidthOfScreen(DefaultScreenOfDisplay(m_display));
m_h = HeightOfScreen(DefaultScreenOfDisplay(m_display));
-#if HAVE_X11_EXTENSIONS_XRANDR_H
- if (m_xrandr){
- int numSizes;
- XRRScreenSize* xrrs;
- Rotation rotation;
- xrrs = XRRSizes(m_display, DefaultScreen(m_display), &numSizes);
- XRRRotations(m_display, DefaultScreen(m_display), &rotation);
- if (xrrs != NULL) {
- if (rotation & (RR_Rotate_90|RR_Rotate_270) ){
- m_w = xrrs->height;
- m_h = xrrs->width;
- }
- }
- }
-#endif
-
// get center of default screen
m_xCenter = m_x + (m_w >> 1);
m_yCenter = m_y + (m_h >> 1);
@@ -1300,7 +1281,7 @@ XWindowsScreen::handleSystemEvent(const Event& event, void*)
// handle the event ourself
switch (xevent->type) {
case CreateNotify:
- if (m_isPrimary) {
+ if (m_isPrimary && !m_xi2detected) {
// select events on new window
selectEvents(xevent->xcreatewindow.window);
}
@@ -2096,11 +2096,11 @@ ConfigReadContext::parseInterval(const ArgList& args) const
}
char* end;
- long startValue = strtol(args[0].c_str(), &end, 10);
+ double startValue = strtod(args[0].c_str(), &end);
if (end[0] != '\0') {
throw XConfigRead(*this, "invalid interval \"%{1}\"", concatArgs(args));
}
- long endValue = strtol(args[1].c_str(), &end, 10);
+ double endValue = strtod(args[1].c_str(), &end);
if (end[0] != '\0') {
throw XConfigRead(*this, "invalid interval \"%{1}\"", concatArgs(args));
}
Oops, something went wrong.

No commit comments for this range