simplify back logic. It ignores the shrink button now, but shouldn’t produce awkward orders anymore

This commit is contained in:
Stefan Breunig 2013-03-08 11:33:51 +01:00
parent eed1b9cef2
commit 9b4bfb6fcc

View File

@ -7,27 +7,23 @@
window.setupBackButton = function() { window.setupBackButton = function() {
window.setupBackButton._actions =[$('#chatcontrols a.active')]; var c = window.isSmartphone()
? window.smartphone.mapButton
: $('#chatcontrols a.active');
window.setupBackButton._actions = [c.get(0)];
$('#chatcontrols a').click(function() { $('#chatcontrols a').click(function() {
if(window.setupBackButton._ignoreNextClick) { // ignore shrink button
window.setupBackButton._ignoreNextClick = false; if(a.hasClass('toggle')) return;
return;
}
window.setupBackButton._actions.push(this); window.setupBackButton._actions.push(this);
window.setupBackButton._actions = window.setupBackButton._actions.slice(-3); window.setupBackButton._actions = window.setupBackButton._actions.slice(-2);
}); });
window.goBack = function() { window.goBack = function() {
while(window.setupBackButton._actions.length > 0) { var a = window.setupBackButton._actions[0];
var a = $(window.setupBackButton._actions.pop()); if(!a) return;
// skip no-op back actions. This may occur then the expand/shrink $(a).click();
// button is used. window.setupBackButton._actions = [a];
if(a.hasClass('active')) continue;
window.setupBackButton._ignoreNextClick = true;
a.click();
console.log('Going back to ' + a.text());
break;
}
} }
} }