From d43401cc74acc7b877b61353c6aaeafed83744cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 11 Feb 2020 17:46:11 +0100 Subject: [PATCH] unlockDialog: Support clock/prompt switching via scrolling SwipeTracker "only" handles touch gestures and smooth scrolling. Scrolling still makes sense for regular mice as well though, so add handling for that as well. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/972 --- js/ui/unlockDialog.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js index 1816689a3..d535a721b 100644 --- a/js/ui/unlockDialog.js +++ b/js/ui/unlockDialog.js @@ -443,6 +443,18 @@ var UnlockDialog = GObject.registerClass({ this._swipeTracker.connect('update', this._swipeUpdate.bind(this)); this._swipeTracker.connect('end', this._swipeEnd.bind(this)); + this.connect('scroll-event', (o, event) => { + if (this._swipeTracker.canHandleScrollEvent(event)) + return Clutter.EVENT_PROPAGATE; + + let direction = event.get_scroll_direction(); + if (direction === Clutter.ScrollDirection.UP) + this._showClock(); + else if (direction === Clutter.ScrollDirection.DOWN) + this._showPrompt(); + return Clutter.EVENT_STOP; + }); + this._activePage = null; let tapAction = new Clutter.TapAction();