                 case .move:
                     cancelled = false
                     
-                    let timestamp = Double(point.x) / self.mediaDuration
+                    var timestamp = Double(point.x / self.bounds.width) * self.mediaDuration
+                    
+                    if timestamp < 0 {
+                        timestamp = 0
+                    } else if timestamp > self.mediaDuration {
+                        timestamp = self.mediaDuration
+                    }
                     
                     self.delegate?.timelineDidMoveAnnotation(annotation, to: timestamp)
                 default: break
                 }
+                
                 mode = .none
+                self.hoveredAnnotation = nil
+                self.mouseOut(annotation, layer: layer)
+                
                 stop.pointee = true
             case .leftMouseDragged:
                 if mode != .delete {

        borderLayer.borderWidth = 1.0
        borderLayer.frame = bounds
        borderLayer.cornerRadius = Metrics.cornerRadius
        borderLayer.masksToBounds = true
        
        layer?.addSublayer(borderLayer)
        

            
            l.backgroundColor = NSColor.playerHighlight.cgColor
            l.name = annotation.identifier
            l.zPosition = 999
            l.cornerRadius = Metrics.annotationBubbleDiameter / 2
            l.borderColor = NSColor.white.cgColor
            l.borderWidth = 0
