From b67c300484fbcf4df40adfa65d244f0e6dc24a52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 24 Jul 2019 21:03:17 +0200 Subject: [PATCH] js: Use Clutter transitions for adjustment changes This concludes our quest of moving from Tweener to Clutter's animation framework. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/669 --- js/gdm/loginDialog.js | 10 ++++------ js/misc/util.js | 9 ++++----- js/ui/appDisplay.js | 10 +++++----- js/ui/switcherPopup.js | 38 ++++++++++++++++++-------------------- js/ui/workspacesView.js | 12 ++++-------- 5 files changed, 35 insertions(+), 44 deletions(-) diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 13db8c6ec..76edcf44f 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -31,7 +31,6 @@ const LoginManager = imports.misc.loginManager; const Main = imports.ui.main; const PopupMenu = imports.ui.popupMenu; const Realmd = imports.gdm.realmd; -const Tweener = imports.ui.tweener; const UserWidget = imports.ui.userWidget; const _FADE_ANIMATION_TIME = 250; @@ -205,11 +204,10 @@ var UserList = class { let adjustment = this.actor.get_vscroll_bar().get_adjustment(); let value = (box.y1 + adjustment.step_increment / 2.0) - (adjustment.page_size / 2.0); - Tweener.removeTweens(adjustment); - Tweener.addTween (adjustment, - { value: value, - time: _SCROLL_ANIMATION_TIME / 1000, - transition: 'easeOutQuad' }); + adjustment.ease(value, { + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + duration: _SCROLL_ANIMATION_TIME + }); } jumpToItem(item) { diff --git a/js/misc/util.js b/js/misc/util.js index 7f46e4506..b101e5559 100644 --- a/js/misc/util.js +++ b/js/misc/util.js @@ -9,7 +9,6 @@ const Mainloop = imports.mainloop; const Signals = imports.signals; const Main = imports.ui.main; -const Tweener = imports.ui.tweener; const Params = imports.misc.params; var SCROLL_TIME = 100; @@ -426,10 +425,10 @@ function ensureActorVisibleInScrollView(scrollView, actor) { else return; - Tweener.addTween(adjustment, - { value: value, - time: SCROLL_TIME / 1000, - transition: 'easeOutQuad' }); + adjustment.ease(value, { + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + duration: SCROLL_TIME + }); } var AppSettingsMonitor = class { diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 9947fdcae..b2cdb3d9d 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -13,7 +13,6 @@ const IconGrid = imports.ui.iconGrid; const Main = imports.ui.main; const PageIndicators = imports.ui.pageIndicators; const PopupMenu = imports.ui.popupMenu; -const Tweener = imports.ui.tweener; const Search = imports.ui.search; const Params = imports.misc.params; const Util = imports.misc.util; @@ -498,10 +497,11 @@ var AllView = class AllView extends BaseAppView { time = Math.min(time, PAGE_SWITCH_TIME); this._grid.currentPage = pageNumber; - Tweener.addTween(this._adjustment, - { value: this._grid.getPageY(this._grid.currentPage), - time: time / 1000, - transition: 'easeOutQuad' }); + this._adjustment.ease(this._grid.getPageY(pageNumber), { + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + duration: time + }); + this._pageIndicators.setCurrentPage(pageNumber); } diff --git a/js/ui/switcherPopup.js b/js/ui/switcherPopup.js index 5167bb568..c311026c3 100644 --- a/js/ui/switcherPopup.js +++ b/js/ui/switcherPopup.js @@ -458,16 +458,15 @@ var SwitcherList = GObject.registerClass({ value = Math.max(upper, item.allocation.x2 - pageSize); this._scrollableRight = true; - Tweener.addTween(adjustment, - { value: value, - time: POPUP_SCROLL_TIME / 1000, - transition: 'easeOutQuad', - onComplete: () => { - if (this._highlighted == 0) - this._scrollableLeft = false; - this.queue_relayout(); - } - }); + adjustment.ease(value, { + progress_mode: Clutter.AnimationMode.EASE_OUT_QUAD, + duration: POPUP_SCROLL_TIME, + onComplete: () => { + if (this._highlighted == 0) + this._scrollableLeft = false; + this.queue_relayout(); + } + }); } _scrollToRight() { @@ -482,16 +481,15 @@ var SwitcherList = GObject.registerClass({ value = Math.min(upper, item.allocation.x2 - pageSize); this._scrollableLeft = true; - Tweener.addTween(adjustment, - { value: value, - time: POPUP_SCROLL_TIME / 1000, - transition: 'easeOutQuad', - onComplete: () => { - if (this._highlighted == this._items.length - 1) - this._scrollableRight = false; - this.queue_relayout(); - } - }); + adjustment.ease(value, { + progress_mode: Clutter.AnimationMode.EASE_OUT_QUAD, + duration: POPUP_SCROLL_TIME, + onComplete: () => { + if (this._highlighted == this._items.length - 1) + this._scrollableRight = false; + this.queue_relayout(); + } + }); } _itemActivated(n) { diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 5acc3e438..af490e94a 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -5,7 +5,6 @@ const { Clutter, Gio, GObject, Meta, Shell, St } = imports.gi; const Signals = imports.signals; const Main = imports.ui.main; -const Tweener = imports.ui.tweener; const WindowManager = imports.ui.windowManager; const Workspace = imports.ui.workspace; @@ -245,13 +244,10 @@ var WorkspacesView = class extends WorkspacesViewBase { this._animatingScroll = true; - Tweener.addTween(this.scrollAdjustment, { - value: index, - time: WORKSPACE_SWITCH_TIME / 1000, - transition: 'easeOutQuad', - onComplete: () => { - this._animatingScroll = false; - } + this.scrollAdjustment.ease(index, { + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + duration: WORKSPACE_SWITCH_TIME, + onComplete: () => this._animatingScroll = false }); }