From 6c928f12b2f25dd5b866d23f5022016d3ab1229b Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 8 Mar 2016 12:16:34 +0000 Subject: [PATCH] ForceUpdate the scrollpanel when the aux panel changes size Catch some more cases when we ought to be updating the gemini scroll stuff. --- src/components/structures/RoomView.js | 28 ++++++++++++++------------ src/components/views/rooms/AuxPanel.js | 21 +++++++++++++++---- src/components/views/voip/CallView.js | 8 ++++++-- 3 files changed, 38 insertions(+), 19 deletions(-) diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index fc2190e498..84ad8f595c 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -991,10 +991,10 @@ module.exports = React.createClass({ // but it's better than the video going missing entirely if (auxPanelMaxHeight < 50) auxPanelMaxHeight = 50; - // we may need to resize the gemini panel after changing the aux panel - // size, so add a callback to onChildResize. - this.setState({auxPanelMaxHeight: auxPanelMaxHeight}, - this.onChildResize); + this.setState({auxPanelMaxHeight: auxPanelMaxHeight}); + + // changing the maxHeight on the auxpanel will trigger a callback go + // onChildResize, so no need to worry about that here. }, onFullscreenClick: function() { @@ -1042,8 +1042,15 @@ module.exports = React.createClass({ // XXX: this is a bit naughty; we should be doing this via props if (show) { this.setState({editingRoomSettings: true}); - var self = this; - setTimeout(function() { self.onResize() }, 0); + } + }, + + // this has to be a proper method rather than an unnamed function, + // otherwise react calls it with null on each update. + _gatherTimelinePanelRef: function(r) { + this.refs.messagePanel = r; + if(r) { + this.updateTint(); } }, @@ -1206,7 +1213,7 @@ module.exports = React.createClass({ draggingFile={this.state.draggingFile} displayConfCallNotification={this.state.displayConfCallNotification} maxHeight={this.state.auxPanelMaxHeight} - onCallViewVideoRezize={this.onChildResize} > + onResize={this.onChildResize} > { aux } ); @@ -1285,12 +1292,7 @@ module.exports = React.createClass({ } var messagePanel = ( - { - this.refs.messagePanel = r; - if(r) { - this.updateTint(); - } - }} +