boxpointer: Make drawing arrow background optional

We currently use get_color(), which assumes the color exists in the
stylesheet (and prints a warning if it doesn't).

Switch to lookup_color() and skip filling the background if no
such colors exits.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2172>
This commit is contained in:
Florian Müllner 2022-02-12 16:58:06 +01:00 committed by Sam Hewitt
parent 738f9c3b04
commit 514558409c

View File

@ -278,8 +278,6 @@ var BoxPointer = GObject.registerClass({
let halfBorder = borderWidth / 2; let halfBorder = borderWidth / 2;
let halfBase = Math.floor(base / 2); let halfBase = Math.floor(base / 2);
let backgroundColor = themeNode.get_color('-arrow-background-color');
let [width, height] = area.get_surface_size(); let [width, height] = area.get_surface_size();
let [boxWidth, boxHeight] = [width, height]; let [boxWidth, boxHeight] = [width, height];
if (this._arrowSide == St.Side.TOP || this._arrowSide == St.Side.BOTTOM) if (this._arrowSide == St.Side.TOP || this._arrowSide == St.Side.BOTTOM)
@ -422,8 +420,12 @@ var BoxPointer = GObject.registerClass({
Math.PI, 3 * Math.PI / 2); Math.PI, 3 * Math.PI / 2);
} }
Clutter.cairo_set_source_color(cr, backgroundColor); const [hasColor, bgColor] =
cr.fillPreserve(); themeNode.lookup_color('-arrow-background-color', false);
if (hasColor) {
Clutter.cairo_set_source_color(cr, bgColor);
cr.fillPreserve();
}
if (borderWidth > 0) { if (borderWidth > 0) {
let borderColor = themeNode.get_color('-arrow-border-color'); let borderColor = themeNode.get_color('-arrow-border-color');