diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index fe0141dde0..8ed408ffbe 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -336,9 +336,14 @@ export default class AppTile extends React.Component { * Called when widget iframe has finished loading */ _onLoaded() { - if (!ActiveWidgetStore.getWidgetMessaging(this.props.id)) { - this._setupWidgetMessaging(); + // Destroy the old widget messaging before starting it back up again. Some widgets + // have startup routines that run when they are loaded, so we just need to reinitialize + // the messaging for them. + if (ActiveWidgetStore.getWidgetMessaging(this.props.id)) { + ActiveWidgetStore.delWidgetMessaging(this.props.id); } + this._setupWidgetMessaging(); + ActiveWidgetStore.setRoomId(this.props.id, this.props.room.roomId); this.setState({loading: false}); }