I did a quick search, but Feedback provided nothing.
Have any of you run into issue where Canvas Paint events execute, but the canvas contents do not update in the UI?
I have a container that acts as a custom tab bar for an app. I draw the tab border around the inside of the clicked canvas to indicate which tab is selected along with changing the label text color. On Windows, Linux, and other macOS versions, this works as expected. On Catalina, however, the text color of the label changes, but the DrawRoundRect call result does not update in the GUI. All of the code runs in the main loop.
I’ve tried adding a timer calling Canvas.Invaildate just to try to force a refresh with no difference.
Logic specifics:
- TGToolBar is a Container
- The container has up to 8 “tab” canvas controls
- Each tab canvas control has a Label
- The Canvases are part of a control array
- The tabs are used to select a page on a PagePanel (the TGToolBar is NOT a child of the PagePanel)
- The MouseDown event for the control array resets the background (which also doesn’t take affect) and assigns a variable “tbIndex”
- The Paint event then uses the tbIndex value to either clear the background (thus removing the previous outline) and call DrawRoundedRect to draw the outline on the clicked tab.
As I mentioned, this has worked as expected for a very long time on Windows XP - 10 and maltose Server version, Linux, and all previous versions os OS X / macOS.
Any thoughts?