robrix
robrix copied to clipboard
Tracking issue for unnecessary redraws
- [ ] RoomsList widget
- The current way that updates are applied to the RoomsList widget will trigger a redraw of the entire widget any time a single room changes. Ideally, we should just redraw only the RoomPreview widgets for the rooms that were actually updated.
- We could even locate the smallest area that should be redrawn. For example: avatar or room_name and other related subwidgets in the room_preview widget.
- Note from Kevin: it might be slower to figure out the specific items that need redrawing than to just redraw an entire RoomPreview widget.
- [ ] Audit all calls to
SignalToUI::set_ui_signal(), which will cause UI-side refreshes for all widgets that handleEvent::Signal.- More than likely, most or all of these are correct, but we should look into it just to be sure.
- [x] When other users are typing, it causes the RoomScreen/Message widgets to constantly redraw.
- Fixed by a redesign in #421.
- [x] Message widget can potentially be redrawn on every
MouseMoveevent- See https://github.com/project-robius/robrix/issues/331#issuecomment-2609080174
- Fixed by #357
Agreed. As I mentioned separately, let's go ahead and collect all of the unnecessary redraws into a single tracking issue (we can use this one) and add checkboxes for each one.
The Message widget redraw (based on Event::MouseMove) that we previously discussed can also go here. That one is mentioned in issue #331, and I'm actively working on it.
I modified the issue accordingly. Feel free to add any more cases that you come across.
I think most (if not all) unnecessary redraws have been resolved now.