When an infolog changes, only refresh calendar when it's the active app, otherwise wait until it is activated. Fixes event positioning problems caused by refreshing while hidden without needing to recalculate everything while hidden.

This commit is contained in:
nathangray 2016-07-04 15:20:22 -06:00
parent 75fa12b1d3
commit bfb599666e

View File

@ -304,9 +304,24 @@ app.classes.calendar = (function(){ "use strict"; return AppJS.extend(
} }
if (do_refresh) if (do_refresh)
{ {
// Discard cache, reload // Discard cache
this._clear_cache(); this._clear_cache();
this.setState({state: this.state});
// Calendar is the current application, refresh now
if(framework.activeApp.appName == this.appName)
{
this.setState({state: this.state});
}
// Bind once to trigger a refresh when tab is activated again
else if(framework.applications.calendar && framework.applications.calendar.tab &&
framework.applications.calendar.tab.contentDiv)
{
jQuery(framework.applications.calendar.tab.contentDiv)
.off('show.calendar')
.one('show.calendar',
jQuery.proxy(function() {this.setState({state: this.state});},this)
);
}
} }
break; break;
case 'calendar': case 'calendar':