From d896b1a80f3bc5dc487971b1230cd2b4185b9404 Mon Sep 17 00:00:00 2001 From: jao Date: Fri, 23 Dec 2022 23:20:55 +0000 Subject: Fix for #663: honour explicit bg/fg colors for icons --- src/Xmobar/Draw/Cairo.hs | 7 +++++-- src/Xmobar/Draw/Types.hs | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/Xmobar/Draw') diff --git a/src/Xmobar/Draw/Cairo.hs b/src/Xmobar/Draw/Cairo.hs index 4a94589..43276eb 100644 --- a/src/Xmobar/Draw/Cairo.hs +++ b/src/Xmobar/Draw/Cairo.hs @@ -92,11 +92,14 @@ withRenderinfo ctx dctx seg@(C.Text _, inf, idx, a) = do withRenderinfo _ _ seg@(C.Hspace w, _, _, _) = return (seg, \_ _ _ -> return (), fromIntegral w) -withRenderinfo _ dctx seg@(C.Icon p, _, _, _) = do +withRenderinfo _ dctx seg@(C.Icon p, info, _, _) = do let (wd, _) = T.dcIconLookup dctx p ioff = C.iconOffset (T.dcConfig dctx) vpos = T.dcHeight dctx / 2 + fromIntegral ioff - render _ off mx = when (off + wd <= mx) $ T.dcIconDrawer dctx off vpos p + conf = T.dcConfig dctx + (fg, bg) = ConfigParse.colorComponents conf (C.tColorsString info) + render _ off mx = when (off + wd <= mx) $ + T.dcIconDrawer dctx off vpos p fg bg return (seg, render, wd) drawBox :: T.DrawContext -> Surface -> Double -> Double -> C.Box -> IO () diff --git a/src/Xmobar/Draw/Types.hs b/src/Xmobar/Draw/Types.hs index 9853c38..1a076b3 100644 --- a/src/Xmobar/Draw/Types.hs +++ b/src/Xmobar/Draw/Types.hs @@ -25,7 +25,7 @@ type ActionPos = ([Action], Position, Position) type Actions = [ActionPos] type IconLookup = String -> (Double, Double) -type IconDrawer = Double -> Double -> String -> IO () +type IconDrawer = Double -> Double -> String -> String -> String -> IO () data DrawContext = DC { dcIconDrawer :: IconDrawer , dcIconLookup :: IconLookup -- cgit v1.2.3