viewSelector: don't crossfade between pages

Instead, wait until the first animation is completed before switching to
the second page.

https://bugzilla.gnome.org/show_bug.cgi?id=693924
This commit is contained in:
Cosimo Cecchi 2013-01-24 01:35:19 -05:00
parent 9b9f33bc8b
commit 278686dc48

View File

@ -12,6 +12,7 @@ const St = imports.gi.St;
const AppDisplay = imports.ui.appDisplay; const AppDisplay = imports.ui.appDisplay;
const Main = imports.ui.main; const Main = imports.ui.main;
const OverviewControls = imports.ui.overviewControls;
const Params = imports.misc.params; const Params = imports.misc.params;
const RemoteSearch = imports.ui.remoteSearch; const RemoteSearch = imports.ui.remoteSearch;
const Search = imports.ui.search; const Search = imports.ui.search;
@ -203,32 +204,36 @@ const ViewSelector = new Lang.Class({
return page; return page;
}, },
_fadePageIn: function() {
this._activePage.show();
Tweener.addTween(this._activePage,
{ opacity: 255,
time: OverviewControls.SIDE_CONTROLS_ANIMATION_TIME / 2,
transition: 'easeOutQuad'
});
},
_showPage: function(page) { _showPage: function(page) {
if (page == this._activePage) if (page == this._activePage)
return; return;
let oldPage = this._activePage; let oldPage = this._activePage;
if (oldPage) { this._activePage = page;
this.emit('page-changed');
if (oldPage)
Tweener.addTween(oldPage, Tweener.addTween(oldPage,
{ opacity: 0, { opacity: 0,
time: 0.1, time: OverviewControls.SIDE_CONTROLS_ANIMATION_TIME / 2,
transition: 'easeOutQuad', transition: 'easeOutQuad',
onComplete: Lang.bind(this, onComplete: Lang.bind(this,
function() { function() {
oldPage.hide(); oldPage.hide();
this._fadePageIn();
}) })
}); });
} else
this._fadePageIn();
this._activePage = page;
this._activePage.show();
this.emit('page-changed');
Tweener.addTween(this._activePage,
{ opacity: 255,
time: 0.1,
transition: 'easeOutQuad'
});
}, },
_a11yFocusPage: function(page) { _a11yFocusPage: function(page) {