+(defun global-hl-line-maybe-unhighlight ()
+ "Maybe deactivate the Global-Hl-Line overlay on the current line.
+Specifically, when `global-hl-line-sticky-flag' is nil deactivate
+all such overlays in all buffers except the current one."
+ (mapc (lambda (ov)
+ (let ((ovb (overlay-buffer ov)))
+ (when (and (not global-hl-line-sticky-flag)
+ (bufferp ovb)
+ (not (eq ovb (current-buffer)))
+ (not (minibufferp)))
+ (with-current-buffer ovb
+ (when (overlayp global-hl-line-overlay)
+ (delete-overlay global-hl-line-overlay))))))
+ global-hl-line-overlays))
+
+(defun global-hl-line-unhighlight-all ()
+ "Deactivate all Global-Hl-Line overlays."
+ (mapc (lambda (ov)
+ (let ((ovb (overlay-buffer ov)))
+ (when (bufferp ovb)
+ (with-current-buffer ovb
+ (global-hl-line-unhighlight)))))
+ global-hl-line-overlays)
+ (setq global-hl-line-overlays nil))
+