diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 7dc2d57ff0..b6cc7722ee 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -1912,6 +1912,7 @@ export default createReactClass({
disabled={this.props.disabled}
showApps={this.state.showApps}
e2eStatus={this.state.e2eStatus}
+ resizeNotifier={this.props.resizeNotifier}
permalinkCreator={this._getPermalinkCreatorForRoom(this.state.room)}
/>;
}
diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js
index bf4700ed97..00a02cf087 100644
--- a/src/components/views/rooms/MessageComposer.js
+++ b/src/components/views/rooms/MessageComposer.js
@@ -354,6 +354,7 @@ export default class MessageComposer extends React.Component {
key="controls_input"
room={this.props.room}
placeholder={this.renderPlaceholderText()}
+ resizeNotifier={this.props.resizeNotifier}
permalinkCreator={this.props.permalinkCreator} />,
,
,
diff --git a/src/components/views/rooms/SendMessageComposer.js b/src/components/views/rooms/SendMessageComposer.js
index 57927af4d0..d25eb52fb0 100644
--- a/src/components/views/rooms/SendMessageComposer.js
+++ b/src/components/views/rooms/SendMessageComposer.js
@@ -365,6 +365,13 @@ export default class SendMessageComposer extends React.Component {
onAction = (payload) => {
switch (payload.action) {
case 'reply_to_event':
+ // add a timeout for the reply preview to be rendered, so
+ // that the ScrollPanel listening to the resizeNotifier can
+ // correctly measure it's new height and scroll down to keep
+ // at the bottom if it already is
+ setTimeout(() => {
+ this.props.resizeNotifier.notifyTimelineHeightChanged();
+ }, 100);
case Action.FocusComposer:
this._editorRef && this._editorRef.focus();
break;
diff --git a/src/utils/ResizeNotifier.js b/src/utils/ResizeNotifier.js
index f726a43e08..5467716576 100644
--- a/src/utils/ResizeNotifier.js
+++ b/src/utils/ResizeNotifier.js
@@ -53,6 +53,10 @@ export default class ResizeNotifier extends EventEmitter {
this._updateMiddlePanel();
}
+ notifyTimelineHeightChanged() {
+ this._updateMiddlePanel();
+ }
+
// can be called in quick succession
notifyWindowResized() {
// no need to throttle this one,