[Git][wxwidgets/wxwidgets][master] 17 commits: Add Refresh() in wxWindowMSW::OnSysColourChanged()

2 views
Skip to first unread message

Vadim Zeitlin (@_VZ_)

unread,
May 25, 2026, 3:31:50 PM (13 days ago) May 25
to wx-commi...@googlegroups.com

Vadim Zeitlin pushed to branch master at wxWidgets / wxWidgets

Commits:

  • c4cf2c48
    by Steve Cornett at 2026-05-23T18:31:31+02:00
    Add Refresh() in wxWindowMSW::OnSysColourChanged()
    
    Refresh the windows when any system settings change, including changes
    to the colours and metrics.
    
    See #26424.
    
  • 75ed9756
    by Vadim Zeitlin at 2026-05-23T18:33:02+02:00
    Fix typo in a comment: "even" -> "event"
    
    No real changes.
    
  • 072bda8f
    by Steve Cornett at 2026-05-23T18:34:20+02:00
    Remove a redundant Refresh() from wxToolBar code
    
    This is not needed any more after the changes in the parent commit.
    
    See #26424.
    
  • 4c630420
    by Steve Cornett at 2026-05-23T18:35:05+02:00
    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.
    
  • 7b938b83
    by Vadim Zeitlin at 2026-05-23T18:35:43+02:00
    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.
    
  • bb47481f
    by Steve Cornett at 2026-05-23T18:38:53+02:00
    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.
    
  • 625efe66
    by Steve Cornett at 2026-05-23T18:43:22+02:00
    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.
    
  • a0881cb5
    by Steve Cornett at 2026-05-23T18:54:11+02:00
    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.
    
  • 6cb7b3a6
    by Steve Cornett at 2026-05-23T18:57:30+02:00
    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.
    
  • 63db655b
    by Vadim Zeitlin at 2026-05-23T18:58:40+02:00
    Don't call base class event handler, use wxEvent::Skip()
    
    No real changes, just make the code a bit simpler and more maintainable.
    
  • 83d75264
    by Steve Cornett at 2026-05-23T19:01:17+02:00
    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.
    
  • cc7aff49
    by Vadim Zeitlin at 2026-05-24T00:02:22+02:00
    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.
    
  • 7e890644
    by Vadim Zeitlin at 2026-05-24T23:56:45+02:00
    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.
    
  • 93a565d8
    by Steve Cornett at 2026-05-25T21:19:07+02:00
    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>
    
  • 8ac3d483
    by Steve Cornett at 2026-05-25T21:19:07+02:00
    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.
    
  • 3bb2fe39
    by Steve Cornett at 2026-05-25T21:21:51+02:00
    Fix build with wxUSE_DARK_MODE=0
    
    Provide stub function implementations that were missing in this case.
    
    Closes #26510.
    
  • 8ff2ba11
    by Vadim Zeitlin at 2026-05-25T21:22:31+02:00
    Merge branch 'msw-settings-change'
    
    Fixes for settings/colours changes in wxMSW.
    
    See #26503.
    

44 changed files:

The diff was not included because it is too large.
Reply all
Reply to author
Forward
0 new messages