Add Refresh() in wxWindowMSW::OnSysColourChanged() Refresh the windows when any system settings change, including changes to the colours and metrics. See #26424.
Fix typo in a comment: "even" -> "event" No real changes.
Remove a redundant Refresh() from wxToolBar code This is not needed any more after the changes in the parent commit. See #26424.
Remove another redundant Refresh() from wxMDIParentFrame code Similar to the parent commit, this is not needed any longer after the changes of the grandparent commit. See #26424.
Revert "Add system color change event handler to wxDataViewCtrl" This reverts commit 5f75241f3a25a831bb1a7cb796d41a1ed43d73df which is not necessary any longer as all windows are refreshed on colour change anyhow in wxMSW too now. See #26424.
Update non-client colors upon theme change in wxMSW This change updates the colors in the top level window title bar, menu bar, etc, with dark/light theme change. wxMSWDarkMode::EnableForTLW() is renamed to ConfigureTLW() as this function can now either enable or disable the use of dark theme. Closes #26425.
Fix wxFrame system color change in wxMSW This change fixes wxFrame so that it properly responds to switching between high contrast themes as well as dark mode. Do it by not setting the frame background colour by default and implementing GetDefaultAttributes() properly instead, as this ensures that the correct colour is used by default, in both light and dark modes, while explicitly set colour still overrides it. See #25755. Closes #26427.
Eliminate redundant system color change events Prior to this change, the handling for WM_SETTINGCHANGE with the "ImmersiveColorSet" argument introduced an additional system color change event in addition to handling the message normally. This doubled the number of events per window. Since WM_SETTINGCHANGE is applied recursively to child windows, this resulted in an exponential increase in the number of events generated, doubling with each level of child windows. The solution is to handle WM_SETTINGCHANGE with "ImmersiveColorSet" as a system color change only - as if it were WM_SYSCOLORCHANGE. Closes #26454.
Don't send redundant wxSysColourChangedEvent in wxFrame These events are already sent to all children, there is no need to do it explicitly. See #26454.
Don't call base class event handler, use wxEvent::Skip() No real changes, just make the code a bit simpler and more maintainable.
Fix minimum Windows version for supporting dark mode There was an incompatible change in one of the functions we use in v1903, so even while we could support older versions, we currently don't and it's simpler to just increase the minimum supported version rather than fix this. See #26494.
Revert recent change to wxWindow::MSWGetBgBrushForChild() 625efe66f1 (Fix wxFrame system color change in wxMSW, 2026-05-05) removed the test from m_hasBgCol from this function, but it is needed to avoid returning the standard background colour which was always applied after this change.
Fix frame background colour after the parent commit While we still need to check for m_hasBgCol to avoid overriding the background in transparent windows, we now also need to check whether the window is a TLW, as we still want wxFrame to use its background colour instead of the default.
Remove fall back definitions for BCM_SETIMAGELIST and related All currently used compilers/SDKs define them, so there is no need to do it ourselves any more. See #26509. Co-authored-by: Vadim Zeitlin <va...@wxwidgets.org>
Remove wxUSE_UXTHEME option and assume it is always on It has not been possible to build with this option disabled for 4 years. It appears there has been little effort to support this option since then. For 8 years, there has been a duplicate definition of wxUxThemeIsActive(), causing a linker warning. Closes #26509.
Fix build with wxUSE_DARK_MODE=0 Provide stub function implementations that were missing in this case. Closes #26510.
Merge branch 'msw-settings-change' Fixes for settings/colours changes in wxMSW. See #26503.
—
View it on GitLab.
You're receiving this email because of your account on gitlab.com. Manage all notifications · Help