summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Xmobar/Draw/Cairo.hs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/Xmobar/Draw/Cairo.hs b/src/Xmobar/Draw/Cairo.hs
index cd85580..af48133 100644
--- a/src/Xmobar/Draw/Cairo.hs
+++ b/src/Xmobar/Draw/Cairo.hs
@@ -177,13 +177,12 @@ drawSegments dctx surf = do
#ifndef XRENDER
drawCairoBackground dctx surf
#endif
- (lend, as, bx) <- foldM (drawSegment dctx surf dw) (0, [], []) llyts
- let rw = sWidth rlyts
- rstart = max (lend + 1) (dw - rw - 1)
- cmax = rstart - 1
- cw = sWidth clyts
- cstart = lend + 1 + max 0 (dw - rw - lend - cw) / 2.0
- (_, as', bx') <- foldM (drawSegment dctx surf cmax) (cstart, as, bx) clyts
+ (_, as, bx) <- foldM (drawSegment dctx surf dw) (0, [], []) llyts
+ let [rw, cw] = map sWidth [rlyts, clyts]
+ cstart = (dw - cw) / 2.0
+ (cend, as', bx') <- foldM (drawSegment dctx surf dw) (cstart, as, bx) clyts
+ let rstart' = dw - rw - 1
+ rstart = if cw > 0 then max rstart' (cend + 1) else rstart'
(_, as'', bx'') <- foldM (drawSegment dctx surf dw) (rstart, as', bx') rlyts
drawBoxes dctx surf (reverse bx'')
when (C.borderWidth conf > 0) (drawBorder conf dw dh surf)