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
This commit is contained in:
Florian Müllner 2013-05-21 19:04:03 +02:00
parent 976166a04a
commit bbb23b515f

View File

@ -551,6 +551,10 @@ const PopupSliderMenuItem = new Lang.Class({
let handleRadius = themeNode.get_length('-slider-handle-radius'); 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 sliderWidth = width - 2 * handleRadius;
let sliderHeight = themeNode.get_length('-slider-height'); let sliderHeight = themeNode.get_length('-slider-height');
@ -602,7 +606,16 @@ const PopupSliderMenuItem = new Lang.Class({
color.blue / 255, color.blue / 255,
color.alpha / 255); color.alpha / 255);
cr.arc(handleX, handleY, handleRadius, 0, 2 * Math.PI); 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(); cr.$dispose();
}, },