@@ -215,8 +215,11 @@ public struct RSlider: View {
215
215
216
216
private func calculateDirection( _ pt1: CGPoint , _ pt2: CGPoint ) -> Double {
217
217
let a = pt2. x - pt1. x
218
+ #if os(macOS)
219
+ let b = - pt2 . y - pt1. y
220
+ #else
218
221
let b = pt2. y - pt1. y
219
-
222
+ #endif
220
223
return Double ( atanP ( x: a, y: b) / ( 2 * . pi) )
221
224
}
222
225
private var configuration : RSliderConfiguration {
@@ -233,19 +236,7 @@ public struct RSlider: View {
233
236
private func makeThumb( _ proxy: GeometryProxy ) -> some View {
234
237
let radius = min ( proxy. size. height, proxy. size. width) / 2
235
238
let middle = CGPoint ( x: proxy. frame ( in: . global) . midX, y: proxy. frame ( in: . global) . midY)
236
- #if os(macOS)
237
- let gesture = DragGesture ( minimumDistance: 0 )
238
- . onChanged { ( value) in
239
- let direction = self . calculateDirection ( middle, value. location)
240
- self . value = direction* ( self . range. upperBound- self . range. lowerBound) + self . range. lowerBound
241
- self . isActive = true
242
- }
243
- . onEnded { ( value) in
244
- let direction = self . calculateDirection ( middle, value. location)
245
- self . value = direction* ( self . range. upperBound- self . range. lowerBound) + self . range. lowerBound
246
- self . isActive = false
247
- }
248
- #else
239
+
249
240
let gesture = DragGesture ( minimumDistance: 0 , coordinateSpace: . global)
250
241
. onChanged { ( value) in
251
242
let direction = self . calculateDirection ( middle, value. location)
@@ -257,7 +248,6 @@ public struct RSlider: View {
257
248
self . value = direction* ( self . range. upperBound- self . range. lowerBound) + self . range. lowerBound
258
249
self . isActive = false
259
250
}
260
- #endif
261
251
let pct = ( value- range. lowerBound) / ( range. upperBound- range. lowerBound)
262
252
let pX = radius*CGFloat ( cos ( pct*2 * . pi ) )
263
253
let pY = radius*CGFloat ( sin ( pct*2 * . pi ) )
0 commit comments