Conversation
Cache memory-chart colors instead of rebuilding the palette on every C() call. Keep a theme-owned palette on the view and resolved colors on arrows/items, refreshing them on kThemeChanged. Allow arrows to have a neutral color. Unlabeled arrows no longer draw "N/A".
…hild can be panned using scrollwheel and track pad gestures
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.
Motivation
The memory chart would re-create a color look up structure multiple time per-frame, every time the previous C() function was called. It also would do a string look up every time to assign a color. The colors and mappings do not change unless new memory chart data is loaded. Pre-calculate all of this once, and update the colors when the theme changes.
Bonus: fix mini-map bug where colors on plot are not updated when theme changes.
Technical Details
Summary
RocEvents::kThemeChanged, emitted fromApplyUserDisplaySettingswhenuse_dark_modeflips, so widgets that cache a palette can rebuild instead of going stale.C()access. Keep a theme-owned palette on the view, classify arrows/items once into a color slot, and resolveImU32s from that slot on layout/fetch and on theme change."N/A"; unrecognized/empty categories use a neutral (text_main) color instead of defaulting to read.kThemeChangedso it tracks dark/light instead of staying on the startup theme.Test plan
Title: value; arrows with an empty title draw the line with no caption.N/Aon titled rows (not on unlabeled arrows).