         
         self.theme = theme
         
-        let didSaveOtherArticle = didSave && isHintVisible && article != hint.article
-        let didUnsaveOtherArticle = !didSave && isHintVisible && article != hint.article
+        let didSaveOtherArticle = didSave && !isHintHidden && article != hint.article
+        let didUnsaveOtherArticle = !didSave && !isHintHidden && article != hint.article
         
         guard !didUnsaveOtherArticle else {
             return

            self.hint.view.setNeedsLayout()
        }, completion: { (_) in
            // remove hint after animation is completed
            self.isHintVisible = visible
        })
    }
    

    }
    
    func dismissHint() {
        NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(setHintHidden), object: 1)
        perform(#selector(setHintHidden), with: 1, afterDelay: 8)
    }
    
    @objc func setHintHidden(_ hintHidden: Bool) {
        let frame = hintHidden ? hintFrame.hidden : hintFrame.visible
        if !hintHidden {
            // add hint before animation starts
            isHintHidden = hintHidden
            // set initial frame
            if hint.view.frame.origin.y == 0 {
                hint.view.frame = hintFrame.hidden
