From 20fc4b4490c72076fb8e0360bf44678c08bb2d80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 22 Aug 2019 10:05:40 +0200 Subject: [PATCH] pointerA11yTimeout: Draw a clean circle if the pie is finished If the circle is complete and the pie timeout finished, we don't need the lines to the center point indicating the ends of the pie anymore. We just draw a clean circle instead, which allows for a zoom-out and fade animation of the circle when we're done. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688 --- js/ui/pointerA11yTimeout.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/js/ui/pointerA11yTimeout.js b/js/ui/pointerA11yTimeout.js index 5744ac300..d285ccf2a 100644 --- a/js/ui/pointerA11yTimeout.js +++ b/js/ui/pointerA11yTimeout.js @@ -50,9 +50,14 @@ var PieTimer = GObject.registerClass({ cr.setLineJoin(Cairo.LineJoin.ROUND); cr.translate(width / 2, height / 2); - cr.moveTo(0, 0); + if (this._angle < 2 * Math.PI) + cr.moveTo(0, 0); + cr.arc(0, 0, radius - borderWidth, startAngle, endAngle); - cr.lineTo(0, 0); + + if (this._angle < 2 * Math.PI) + cr.lineTo(0, 0); + cr.closePath(); cr.setLineWidth(0);