These changes address flickering borders in dark mode, primarily with the non-rich wxTextCtrl. The wxListBox border also flickers, but is less noticeable. See #26630.
The flicker occurs when the mouse moves over the border or scroll bar. The problem might not be reproducible on all systems, perhaps depending on graphics drivers. The cause is that these controls generate many unnecessary WM_NCPAINT messages. In our WM_NCPAINT handler, the the light mode border gets drawn and the dark mode border over that.
The solution is to use the DarkMode_DarkTheme theme when available. With this theme, these controls draw a good dark border for most border styles, including the default style. In this case, we do not draw over the border. A new member is introduced to the MSWDarkModeSupport struct to indicate whether we need the custom border drawing.
https://github.com/wxWidgets/wxWidgets/pull/26631
(5 files)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.![]()
@stevecor pushed 1 commit.
—
View it on GitHub or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.![]()
PR #26635 appears to be a better solution.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.![]()
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.![]()