             // super's implementation handle a normal scroll.
             
             super.scroll(to: newOrigin)
-            self.endScrolling()
-//            self.scrollView.reflectScrolledClipView(self)
+            // Can't remember why this is here, it may be to cleanup if needed
+            if !manualScroll {
+                self.endScrolling()
+            }
         }
     }
     

        }
    }
    
    lazy var displayLink : CVDisplayLink = {
        
        var linkCallback : CVDisplayLinkOutputCallback = {( displayLink, _, _, _, _, displayLinkContext) -> CVReturn in
            unsafeBitCast(displayLinkContext, to: ClipView.self).updateOrigin()
            return kCVReturnSuccess
        }
        
        var link : CVDisplayLink?
        CVDisplayLinkCreateWithActiveCGDisplays(&link)
        CVDisplayLinkSetOutputCallback(link!, linkCallback, UnsafeMutableRawPointer(Unmanaged.passUnretained(self).toOpaque()))
        return link!
    }()
    
    

    
    func updateCVDisplay(_ note: Notification) {
        if let screen = self.window?.screen {
            let screenDictionary = screen.deviceDescription
            let screenID = screenDictionary["NSScreenNumber"] as! NSNumber

    }
    
    var manualScroll = false

    @discardableResult open func scrollRectToVisible(_ rect: CGRect, animated: Bool, completion: AnimationCompletion? = nil) -> Bool {
        
        manualScroll = false
        shouldAnimateOriginChange = animated
        if animated == false {
            
