From 4040fd3901ebb9ca36a6893121051a7dc0990973 Mon Sep 17 00:00:00 2001 From: Max Sandholm Date: Mon, 30 Oct 2017 12:18:15 +0200 Subject: [PATCH] Try harder to scroll the RoomList to the active room (still doesn't work) --- src/RoomList.cc | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/RoomList.cc b/src/RoomList.cc index 2ddc1322..0aafd331 100644 --- a/src/RoomList.cc +++ b/src/RoomList.cc @@ -313,18 +313,21 @@ RoomList::setFilterRooms(bool filterRooms) } } - if (!roomFilter_.contains(selectedRoom_)) { - RoomInfoListItem *firstVisibleRoom = nullptr; - for (int i=0; icount(); i++) { - QWidget *item = contentsLayout_->itemAt(i)->widget(); - if (item != nullptr && item->isVisible()) { - firstVisibleRoom = (RoomInfoListItem *) item; - break; + if (filterRooms_ && !roomFilter_.contains(selectedRoom_)) { + RoomInfoListItem *firstVisibleRoom = nullptr; + for (int i = 0; i < contentsLayout_->count(); i++) { + QWidget *item = contentsLayout_->itemAt(i)->widget(); + if (item != nullptr && item->isVisible()) { + firstVisibleRoom = (RoomInfoListItem *)item; + break; + } } - } - if (firstVisibleRoom != nullptr) { - highlightSelectedRoom(firstVisibleRoom->roomId()); - } + if (firstVisibleRoom != nullptr) { + highlightSelectedRoom(firstVisibleRoom->roomId()); + } + } else { + scrollArea_->ensureWidgetVisible( + qobject_cast(rooms_.value(selectedRoom_).data())); } }