diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js
index 91b29d4665..b4fbc5406e 100644
--- a/src/components/structures/RoomSubList.js
+++ b/src/components/structures/RoomSubList.js
@@ -313,6 +313,12 @@ const RoomSubList = React.createClass({
);
},
+ checkOverflow: function() {
+ if (this.refs.scroller) {
+ this.refs.scroller.checkOverflow();
+ }
+ },
+
render: function() {
const len = this.props.list.length + this.props.extraTiles.length;
if (len) {
@@ -330,7 +336,7 @@ const RoomSubList = React.createClass({
tiles.push(...this.props.extraTiles);
return
{this._getHeaderJsx()}
-
+
{ tiles }
;
diff --git a/src/components/views/rooms/RoomList.js b/src/components/views/rooms/RoomList.js
index 9e766bdc15..9fb872cd32 100644
--- a/src/components/views/rooms/RoomList.js
+++ b/src/components/views/rooms/RoomList.js
@@ -71,6 +71,10 @@ module.exports = React.createClass({
getInitialState: function() {
+ this._subListRefs = {
+ // key => RoomSubList ref
+ };
+
const sizesJson = window.localStorage.getItem("mx_roomlist_sizes");
const collapsedJson = window.localStorage.getItem("mx_roomlist_collapsed");
this.subListSizes = sizesJson ? JSON.parse(sizesJson) : {};
@@ -174,8 +178,11 @@ module.exports = React.createClass({
this.mounted = true;
},
- componentDidUpdate: function() {
+ componentDidUpdate: function(prevProps) {
this._repositionIncomingCallBox(undefined, false);
+ if (this.props.searchFilter !== prevProps.searchFilter) {
+ Object.values(this._subListRefs).forEach(l => l.checkOverflow());
+ }
},
onAction: function(payload) {
@@ -483,6 +490,14 @@ module.exports = React.createClass({
window.localStorage.setItem("mx_roomlist_collapsed", JSON.stringify(this.collapsedState));
},
+ _subListRef: function(key, ref) {
+ if (!ref) {
+ delete this._subListRefs[key];
+ } else {
+ this._subListRefs[key] = ref;
+ }
+ },
+
_mapSubListProps: function(subListsProps) {
const defaultProps = {
collapsed: this.props.collapsed,
@@ -513,6 +528,7 @@ module.exports = React.createClass({
const startAsHidden = props.startAsHidden || this.collapsedState[chosenKey];
let subList = (