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:
parent
12c2939b64
commit
3074e48405
@ -553,6 +553,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');
|
||||||
|
|
||||||
@ -604,7 +608,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();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user