Navigation Control Border Re-Implementation #8806
Merged
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.
Resolves: #8442
All elements supporting Navigation Control now draw the border rectangle on the outside.
There were a total of 5 different elements i.e.
Dropdown
: (it works for the main Dropdown item, but the items inside it are very close together. I have implemented this in such a way that the borders for the popup elements are drawn on the inside).DockPanelTab
: The borders are being drawn on the inside, again because of lack of space.InstrumentsTreeItemDelegate
: Borders on the inside, same reason.PaletteTree
: This file usesListItemBlank
as a delegate to draw its children. I've done it in such a way such that only this instance ofListItemBlank
's borders get drawn on the inside.Expandable Blank
: Same thingThe borders for these are drawn on the inside, in a way that it does not interfere with the High-Contrast borders; i.e. the HC 1px border + the 2px navCtrl border will combine to make a single 3px border on the inside (the innermost being the HC border, followed by the navCtrl one).
For a demonstration, Navigate to DevTools -> KeyNav. (Please make sure that you are in Light mode. The colors for the elements in that page are hard-coded and don't work well with other themes)
This PR does not modify the existing Navigation Control logic for elements, just the way the borders are drawn around them.