Sharper on low-res screens, native scroll perf, event handling efficency#943
Merged
kevinaboos merged 16 commits intoJul 14, 2026
Merged
Conversation
See: <makepad/makepad#1127> Also make the dock tab gradient a bit darker for more contrast Fixes project-robius#926
tweak icons to look better with the new SVG rendering functionality that we added to makepad
now uses Makepad's built-in image cache when showing avatars, and they're cached using their MxcUri as the cache key Aslo, update makepad to get our improvements to Windows performance
…eyword Apparently `half` is a reserved keyword in the Metal shader language. Further update makepad to get our improvements to UI-wide scrolling both for drag/touch scrolling and trackpad-driven scrolling.
* we recently fixed `load_image`'s dependencies in makepad to accept `Arc<AsRef<[u8]>>` but forgot to leverage that to avoid deep copies of the image data in Robrix. Now we do that. * We also make sure that SVG data is detected in that new load path like it was with the previous non-async image load paths.
* Windows: fix frame pacing, paste crash, and wheel input backlog * Image: don't build unused mip chains; fix stale images in recycled widgets * Widgets: avoid needless caption redraws; cheaper PortalList height tracking * Text: cache layouts of long texts; stop cloning glyph outlines every frame * Html: fix stale links/spans in recycled widgets and <details> renumbering * Linux: fixed-distance wheel scrolling; Wayland frame-callback pacing * Text: bigger layout cache budget, reclaimed at the end of each frame
* Don't start duplicate pagination requests while one is in flight. * Cache decoded media items such that thumbnails and full images are different. * Show avatar as text until the avatar image is actually decoded
Improve RoomsListEntry to avoid unnecessary redraws and make it faster overall by removing the unnecessary `script_apply_eval` calls, which are slow. Add scroll bounce at the top and the end of the roomslist, and at the end of the timeline in the RoomScreen. Since we fixed stuff in the portallist and scrollable view behavior, we no longer need the `was_scrolling` hack, so that's gone now too. w00t When transitioning from desktop to mobile view mode, clear the focused room so that a random room doesn't appear highlighted after the switch.
Rework pagination to be based on whether we hit the top few items in the portal list, rather than checking on EVERY scroll. Cache widget references that are used on every event handler, which vastly improves per-event handling latency (it was already small, but still). DOn't redraw matrix link pills all the time, only when they are waiting on data to come in. Clear the selected room in mobile view mode
kevinaboos
marked this pull request as ready for review
July 14, 2026 17:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This updates Robrix with my massive improvements to makepad, see makepad/makepad#1127. That includes loads of scroll perf improvements across all platforms.
new_batch: truefor certain major widgets that should have their own drawlistFixes #926