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
symless/synergy-core
brahma-dev/synergy-stable-builds
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
symless/synergy-core
brahma-dev/synergy-stable-builds
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
  • 3 commits
  • 4 files changed
  • 0 commit comments
  • 2 contributors
@@ -147,7 +147,7 @@ class OSXScreen : public PlatformScreen {
SInt32 mapScrollWheelToSynergy(SInt32) const;
// map synergy scroll wheel value to a mac scroll wheel value
- SInt32 mapScrollWheelFromSynergy(SInt32) const;
+ SInt32 mapScrollWheelFromSynergy(float) const;
// get the current scroll wheel speed
double getScrollSpeed() const;
@@ -1426,7 +1426,7 @@
}
SInt32
-OSXScreen::mapScrollWheelFromSynergy(SInt32 x) const
+OSXScreen::mapScrollWheelFromSynergy(float x) const
{
// use server's acceleration with a little boost since other platforms
// take one wheel step as a larger step than the mac does.
@@ -1943,10 +1943,15 @@
return event;
break;
case kCGEventScrollWheel:
+ // http://tinyurl.com/gt98gz7
screen->onMouseWheel(screen->mapScrollWheelToSynergy(
- CGEventGetIntegerValueField(event, kCGScrollWheelEventDeltaAxis2)),
- screen->mapScrollWheelToSynergy(
- CGEventGetIntegerValueField(event, kCGScrollWheelEventDeltaAxis1)));
+ CGEventGetIntegerValueField(
+ event,
+ kCGScrollWheelEventFixedPtDeltaAxis2) >> 16),
+ screen->mapScrollWheelToSynergy(
+ CGEventGetIntegerValueField(
+ event,
+ kCGScrollWheelEventFixedPtDeltaAxis1) >> 16));
break;
case kCGEventKeyDown:
case kCGEventKeyUp:
@@ -99,6 +99,7 @@ XWindowsScreen::XWindowsScreen(
IEventQueue* events) :
m_isPrimary(isPrimary),
m_mouseScrollDelta(mouseScrollDelta),
+ m_accumulatedScroll(0),
m_display(NULL),
m_root(None),
m_window(None),
@@ -868,9 +869,11 @@ XWindowsScreen::fakeMouseWheel(SInt32, SInt32 yDelta) const
return;
}
+ int numEvents = accumulateMouseScroll(yDelta);
+
// choose button depending on rotation direction
const unsigned int xButton = mapButtonToX(static_cast<ButtonID>(
- (yDelta >= 0) ? -1 : -2));
+ (numEvents >= 0) ? -1 : -2));
if (xButton == 0) {
// If we get here, then the XServer does not support the scroll
// wheel buttons, so send PageUp/PageDown keystrokes instead.
@@ -889,20 +892,14 @@ XWindowsScreen::fakeMouseWheel(SInt32, SInt32 yDelta) const
return;
}
- // now use absolute value of delta
- if (yDelta < 0) {
- yDelta = -yDelta;
- }
-
- if (yDelta < m_mouseScrollDelta) {
- LOG((CLOG_WARN "Wheel scroll delta (%d) smaller than threshold (%d)", yDelta, m_mouseScrollDelta));
- }
+ numEvents = std::abs(numEvents);
// send as many clicks as necessary
- for (; yDelta >= m_mouseScrollDelta; yDelta -= m_mouseScrollDelta) {
+ for (; numEvents > 0; numEvents--) {
XTestFakeButtonEvent(m_display, xButton, True, CurrentTime);
XTestFakeButtonEvent(m_display, xButton, False, CurrentTime);
}
+
XFlush(m_display);
}
@@ -1662,6 +1659,15 @@ XWindowsScreen::onMouseMove(const XMotionEvent& xmotion)
}
}
+int
+XWindowsScreen::accumulateMouseScroll(SInt32 yDelta) const
+{
+ m_accumulatedScroll += yDelta;
+ int numEvents = m_accumulatedScroll / m_mouseScrollDelta;
+ m_accumulatedScroll -= numEvents * m_mouseScrollDelta;
+ return numEvents;
+}
+
Cursor
XWindowsScreen::createBlankCursor() const
{
@@ -136,6 +136,10 @@ class XWindowsScreen : public PlatformScreen {
void onMouseRelease(const XButtonEvent&);
void onMouseMove(const XMotionEvent&);
+ // Returns the number of scroll events needed after the current delta has
+ // been taken into account
+ int accumulateMouseScroll(SInt32 yDelta) const;
+
bool detectXI2();
#ifdef HAVE_XI2
void selectXIRawMotion();
@@ -172,8 +176,15 @@ class XWindowsScreen : public PlatformScreen {
// true if screen is being used as a primary screen, false otherwise
bool m_isPrimary;
+
+ // The size of a smallest supported scroll event, in points
int m_mouseScrollDelta;
+ // Accumulates scrolls of less than m_mouseScrollDelta across multiple
+ // scroll events. We dispatch a scroll event whenever the accumulated scroll
+ // becomes larger than m_mouseScrollDelta
+ mutable int m_accumulatedScroll;
+
Display* m_display;
Window m_root;
Window m_window;

No commit comments for this range