From bbb23b515f31ae114d65e6885cfd41f4d0841094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 21 May 2013 19:04:03 +0200 Subject: [PATCH] popupMenu: Allow for an optional border for slider handle While the default style works well will a solid handle, using both border and fill color would be desirable in classic mode. Add the necessary (optional) style properties to allow this. https://bugzilla.gnome.org/show_bug.cgi?id=697917 --- js/ui/popupMenu.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index eb683ffc4..fbe1e7e41 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -551,6 +551,10 @@ const PopupSliderMenuItem = new Lang.Class({ let handleRadius = themeNode.get_length('-slider-handle-radius'); + let handleBorderWidth = themeNode.get_length('-slider-handle-border-width'); + let [hasHandleColor, handleBorderColor] = + themeNode.lookup_color('-slider-handle-border-color', false); + let sliderWidth = width - 2 * handleRadius; let sliderHeight = themeNode.get_length('-slider-height'); @@ -602,7 +606,16 @@ const PopupSliderMenuItem = new Lang.Class({ color.blue / 255, color.alpha / 255); cr.arc(handleX, handleY, handleRadius, 0, 2 * Math.PI); - cr.fill(); + cr.fillPreserve(); + if (hasHandleColor && handleBorderWidth) { + cr.setSourceRGBA( + handleBorderColor.red / 255, + handleBorderColor.green / 255, + handleBorderColor.blue / 255, + handleBorderColor.alpha / 255); + cr.setLineWidth(handleBorderWidth); + cr.stroke(); + } cr.$dispose(); },