]> code.delx.au - gnu-emacs-elpa/blobdiff - colir.el
ivy.el (ivy-partial): Fix for fuzzy completion
[gnu-emacs-elpa] / colir.el
index c9a0ada1adc75514308d508776df9c92cd443f27..7eacbbd12b5f8a913eb486ff414a7abbd60b7af3 100644 (file)
--- a/colir.el
+++ b/colir.el
@@ -32,7 +32,7 @@
 
 (require 'color)
 
-(defcustom colir-compose-method 'colir-compose-overlay
+(defcustom colir-compose-method 'colir-compose-alpha
   "Select a method to compose two color channels."
   :type '(choice
           (const colir-compose-alpha)
       (* 2 a b)
     (- 1 (* 2 (- 1 a) (- 1 b)))))
 
-(defun colir-compose-alpha (a b &optional alpha)
+(defun colir-compose-alpha (a b &optional alpha gamma)
   "Compose A and B channels."
   (setq alpha (or alpha 0.5))
-  (+ (* a alpha) (* b (- 1 alpha))))
+  (setq gamma (or gamma 2.2))
+  (+ (* (expt a gamma) alpha) (* (expt b gamma) (- 1 alpha))))
 
 (defun colir-blend (c1 c2)
   "Blend the two colors C1 and C2 using `colir-compose-method'.
@@ -75,6 +76,8 @@ See also `font-lock-append-text-property'."
     (while (/= start end)
       (setq next (next-single-property-change start 'face object end)
             prev (get-text-property start 'face object))
+      (when (listp prev)
+        (setq prev (cl-find-if #'atom prev)))
       (if prev
           (let ((background-prev (face-background prev)))
             (progn