@@ -110,34 +110,46 @@ class Main extends ImmutableComponent {
110
110
registerSwipeListener ( ) {
111
111
// Navigates back/forward on macOS two-finger swipe
112
112
var trackingFingers = false
113
+ var canSwipeBack = false
114
+ var canSwipeForward = false
113
115
var deltaX = 0
114
116
var deltaY = 0
115
117
var startTime = 0
116
- var xVelocity = 0
117
- var yVelocity = 0
118
+ var time
118
119
119
120
this . mainWindow . addEventListener ( 'wheel' , ( e ) => {
120
121
if ( trackingFingers ) {
121
122
deltaX = deltaX + e . deltaX
122
123
deltaY = deltaY + e . deltaY
123
- var time = ( new Date ( ) ) . getTime ( ) - startTime
124
- xVelocity = deltaX / time
125
- yVelocity = deltaY / time
124
+ time = ( new Date ( ) ) . getTime ( ) - startTime
125
+ if ( deltaX > 0 ) {
126
+ webviewActions . checkSwipe ( false )
127
+ } else if ( deltaX < 0 ) {
128
+ webviewActions . checkSwipe ( true )
129
+ }
126
130
}
127
131
} )
132
+ ipc . on ( messages . CAN_SWIPE_BACK , ( e ) => {
133
+ canSwipeBack = true
134
+ } )
135
+ ipc . on ( messages . CAN_SWIPE_FORWARD , ( e ) => {
136
+ canSwipeForward = true
137
+ } )
128
138
ipc . on ( 'scroll-touch-begin' , function ( ) {
129
139
trackingFingers = true
130
140
startTime = ( new Date ( ) ) . getTime ( )
131
141
} )
132
142
ipc . on ( 'scroll-touch-end' , function ( ) {
133
- if ( trackingFingers && Math . abs ( yVelocity ) < 1 ) {
134
- if ( xVelocity > 1.5 ) {
143
+ if ( time > 50 && trackingFingers && Math . abs ( deltaY ) < 50 ) {
144
+ if ( deltaX > 100 && canSwipeForward ) {
135
145
ipc . emit ( messages . SHORTCUT_ACTIVE_FRAME_FORWARD )
136
- } else if ( xVelocity < - 1.5 ) {
146
+ } else if ( deltaX < - 100 && canSwipeBack ) {
137
147
ipc . emit ( messages . SHORTCUT_ACTIVE_FRAME_BACK )
138
148
}
139
149
}
140
150
trackingFingers = false
151
+ canSwipeBack = false
152
+ canSwipeForward = false
141
153
deltaX = 0
142
154
deltaY = 0
143
155
startTime = 0
0 commit comments