Vadim Zeitlin
670835aec7
Update release files for 3.3.3
...
Update READMEs, change log etc.
2026-07-05 18:01:58 +02:00
Vadim Zeitlin
12c509664b
Add a disabled by default test for checking loading TAR files
...
See #26607 .
2026-07-05 17:25:59 +02:00
Vadim Zeitlin
e56a76dc63
Fix wxSpinCtrl border in wxMSW dark mode
...
The changes of 8a573dd7e7 (Improve handling of the borders in MSW dark
mode, 2026-06-08) resulted in using wxBORDER_SUNKEN for wxSpinCtrl by
default, but this didn't look right in the dark mode, so change its code
to explicitly prefer wxBORDER_SIMPLE now that DoTranslateBorder()
doesn't use it for dark mode any more.
See #26656 .
Closes #26655 .
2026-07-04 19:56:24 +02:00
Vadim Zeitlin
055d882eaf
Merge branch 'fileconfig-fixes'
...
Fix assert on duplicate group in wxFileConfig.
See #26654 .
2026-07-02 23:49:52 +02:00
Vadim Zeitlin
b03b365a17
Merge branch 'osx-macos-27'
...
macOS 27 adaptions.
Closes #26578 .
2026-07-02 23:49:20 +02:00
Vadim Zeitlin
8a5360b3d0
Use earliest supported macOS version in configure by default
...
Use the first value of DEPLOYMENT_TARGET_SUGGESTED_VALUES plist key
instead of MACOSX_DEPLOYMENT_TARGET.
Also drop support for using "buildSettings" key, this is something very
old and certainly not used by any of the still supported Xcode versions.
And simplify the commands used in a configure, in particular use a
single sed command with "p" modifier instead of using grep and then sed.
2026-07-02 23:48:22 +02:00
Vadim Zeitlin
3ac810a234
Warn about multiple groups in wxFileConfig instead of asserting
...
It's not clear whether we handle them correctly, and so it might be
better to refuse input with duplicated groups entirely, but for now at
least avoid asserting when encountering them.
2026-07-02 20:48:43 +02:00
Vadim Zeitlin
5a9bcab361
Add pseudo-test allowing to create wxFileConfig for any file
...
This is convenient for testing problems, for example those found by
OSS-Fuzz (see #26597 ).
2026-07-02 20:48:41 +02:00
Vadim Zeitlin
dd5a0cea4f
Guard test for wxPropertyGrid macros with wxUSE_PROPGRID
...
This is another correction to the test added in the grandparent commit.
See #26651 .
2026-07-01 18:48:15 +02:00
Vadim Zeitlin
317610ed4b
Suppress spurious warning introduced in parent commit
...
We get unexpected and unwanted -Wsuggest-attribute=const for the test
code added in the last commit.
See #26651 .
2026-07-01 18:42:17 +02:00
Vadim Zeitlin
a04dceefea
Test wxPropertyGrid macros with wxNO_IMPLICIT_WXSTRING_ENCODING
...
Verify that these macros produce compilable code.
See #26651 .
2026-07-01 16:34:39 +02:00
Vadim Zeitlin
98d4499e6a
Reformat recently added wxOSX border code to follow wx style
...
Put "{" opening a block on its own line.
No real changes.
2026-06-30 22:34:07 +02:00
Vadim Zeitlin
5426a72f95
Merge branch 'osx-window-invalidate-inset-cache' of github.com:ryancog/wxWidgets
...
Add wxWindow::MacInvalidateInsetCache() to wxOSX/Cocoa.
See #26625 .
Closes #26622 .
2026-06-30 22:32:30 +02:00
Vadim Zeitlin
46cd33e2be
Revert "Ensure the window origin is visible after DPI change"
...
This reverts commit 75284bb8f0 because it
doesn't always use the right window: at least under Windows 11 25H2 it
is possible that the center of the window is still on the old display
when we receive WM_DPICHANGED and so the window is moved to a wrong
position because of the check added in that commit.
Because this check was mostly needed to work around other issues that
made the window become too big, it seems better to revert it rather than
break something that worked correctly before.
See #26604 .
2026-06-30 22:19:58 +02:00
Vadim Zeitlin
7b2bc588e3
Really fix wxStyledTextCtrl::GetMarginCount() documentation
...
This was done manually in 9864777203 (Upgrade to Doxygen 1.15.0,
2026-05-05) but the changes were lost after regeneration, so add an
override for this function documentation to the generating script itself
to ensure that they're preserved.
This also has the nice side effect of generating a better comment in the
header.
See #26431 .
2026-06-27 19:54:44 +02:00
Vadim Zeitlin
b7f4cb4f74
Initialize wxRibbonBar members in their declarations
...
This ensures that they are always initialized, even when the default
ctor is used, which wasn't the case before for m_help_button_hovered
which was never set in this case, resulting in UBSAN errors when running
the ribbon sample.
2026-06-27 19:07:09 +02:00
Vadim Zeitlin
3d8aea230c
Add debug logging for unexpected input in wxIPCSocketStream
...
It could be useful to get more information in case of a problem, so log
unexpected situations.
2026-06-27 19:00:14 +02:00
Vadim Zeitlin
2209580741
Refuse to read 0-sized data packets in wxIPCSocketStream
...
This doesn't make sense and must also indicate a problem with either the
connection or the peer.
See #26628 .
2026-06-27 18:57:14 +02:00
Vadim Zeitlin
8262667a71
Use vector<> instead of manual malloc/free in PCX image handler
...
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Update Documentation / Update Online Documentation (push) Has been cancelled
No real changes, just use vector<> to avoid having to explicitly call
free().
2026-06-23 20:01:45 +02:00
Vadim Zeitlin
aeb11b8b7f
Fix recently broken min size computation on DPI change
...
Use fitting window size, not client size, which was wrongly used in
8386a98409 (Restrict the new size after DPI change to the display size,
2026-06-16).
See #26604 .
2026-06-23 19:29:16 +02:00
Vadim Zeitlin
0a6b26ea43
Merge branch 'msw-button-fg-col'
...
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Update Documentation / Update Online Documentation (push) Has been cancelled
Respect user-set button foreground colour in wxMSW.
See #26618 .
2026-06-22 14:34:26 +02:00
Vadim Zeitlin
17e1af0a6b
Merge branch 'msw-dpi-change-fixes'
...
Fixes for behaviour after DPI change in wxMSW.
Closes #26498 .
See #26604 .
2026-06-22 14:29:16 +02:00
Vadim Zeitlin
52360028b9
Merge branch 'svggc-pen-brush' of github.com:MaartenBent/wxWidgets
...
Support pen and brush styles in wxSVGGraphicsContext.
See #26586 .
2026-06-21 16:30:59 +02:00
Vadim Zeitlin
e786a4c78e
Use a variant of background colour in hot state for the buttons
...
Instead of ignoring the user-set background colour and always using the
system default colour in the hot (a.k.a. current) state, use a slightly
different shade of the custom colour.
This avoids, or at least reduces, problems with the button text becoming
unreadable on the default background but still makes the button change
its visual appearance when the mouse hovers over it.
See #22721 , #25806 , #26453 .
2026-06-21 16:21:54 +02:00
Vadim Zeitlin
a5932c8af0
Revert "Force standard button foreground color when highlighted on MSW"
...
This reverts commit f3ab568a02 because
people do want to use the selected foreground colour even in "current"
state, see #26453 .
A better solution will be implemented for the problem of #22721 which
was originally solved by this commit, see #25806 .
2026-06-20 18:36:58 +02:00
Vadim Zeitlin
81ac052c6e
Always set both components of pane sizer item min size
...
wxAUI layout uses min size (1,1) if no min size is explicitly set for
the pane but if an explicit size was given in one direction, it used
best size in the other, unspecified, direction, which was unexpected,
especially if the best size of the window was big, as setting min size
resulted in dramatically increasing the pane size.
Now we still set the other component of min size to 1 in this case,
which avoids such surprises.
Closes #26557 .
2026-06-20 16:57:52 +02:00
Vadim Zeitlin
0245dea951
Update wxGridSizer gap sizes on DPI change
...
Rescale gaps between rows/columns when the DPI changes.
See #26498 .
2026-06-20 15:51:21 +02:00
Vadim Zeitlin
3a1bcddd2e
Update wxSizer own min size on DPI change
...
We already updated the min size of wxSizerItem containing the sizer, but when
the sizer has a fixed min size set, this size needs to be updated as well, so
do it too in UpdateOnDPIChange().
See #26498 .
2026-06-20 15:50:14 +02:00
Vadim Zeitlin
2da4ea9744
Move code for updating sizers on DPI change to wxSizer itself
...
Replacing the existing global UpdateSizerOnDPIChange() with a member
function will allow accessing private wxSizer variables in it (see the
next commit) and making it virtual will allow overriding it in the
derived classes to update more fields on DPI change.
No real changes yet.
This commit is best viewed with Git --color-moved option.
2026-06-20 15:48:13 +02:00
Vadim Zeitlin
4dd107ae7d
Merge branch 'windows10-darkmode_darktheme2' of github.com:stevecor/wxWidgets
...
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Only use DarkMode_DarkTheme if available by testing for the earliest
Windows version in which it appeared.
See #26613 .
2026-06-20 03:18:40 +02:00
Vadim Zeitlin
934705ef82
Replace wxTopLevelWindow::GeometrySerializer with GeometryStore
...
The old class used incorrect const qualifiers on its member functions:
saving function typically modifies the object being saved into, and so
must not be const, while loading function should be const, but the old
class reversed this.
Do it right this time in the new GeometryStore class and keep the old
class for compatibility only.
See #26602 .
2026-06-19 17:14:39 +02:00
Vadim Zeitlin
32d9ea2b08
Use std::vector<> in wxDataInputStream code
...
Prefer using the standard container instead of manual memory management.
No real changes.
2026-06-17 02:06:28 +02:00
Vadim Zeitlin
863e46bb53
Limit maximum height of wxTreeCtrl best size
...
A tree control with many items could return a size much bigger than the
size of the screen, resulting in any window containing it and computing
its fitting size becoming vertically maximized, which is not the
expected behaviour as other controls, e.g. multiline wxTextCtrl, don't
behave like this.
Arbitrarily limit the best height to ~20 items.
2026-06-16 20:19:11 +02:00
Vadim Zeitlin
75284bb8f0
Ensure the window origin is visible after DPI change
...
Keep the window origin on its display to avoid moving it out of visible
area, which is unexpected and inconvenient.
2026-06-16 20:05:11 +02:00
Vadim Zeitlin
8386a98409
Restrict the new size after DPI change to the display size
...
wxSizer::GetMinSize() can return a size bigger than the display size,
but we never want to use such size for the window, so ensure that it
fits the display client area.
This also ensures that the window doesn't become bigger than its max
size.
2026-06-16 20:00:59 +02:00
Vadim Zeitlin
0ebc0e51ec
Don't scale AUI layout on platforms using DPI-independent pixels
...
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Disable changes of d32c574141 (Update AUI layout on DPI change,
2026-06-01) for the platforms with wxHAS_DPI_INDEPENDENT_PIXELS, i.e.
wxGTK and wxOSX, because it's not just unnecessary but wrong to scale
layout by DPI scale factor there.
2026-06-16 14:41:51 +02:00
Vadim Zeitlin
6af5df1d43
Check that page inserted in wxAuiNotebook has correct parent
...
The page isn't shown correctly otherwise (at least in wxMSW) and this
check is consistent with a similar one in wxNotebook.
2026-06-16 14:34:46 +02:00
Vadim Zeitlin
753de29cae
Merge branch 'darkmode-custom-colour' of github.com:stevecor/wxWidgets
...
Preserve custom colours upon dark mode switch.
Also remove wxStaticText::MSWSetDarkOrLightMode() as it appears to be
unnecessary.
See #26596 .
2026-06-16 00:29:38 +02:00
Vadim Zeitlin
0af78f6896
Fix active tab index value saved in AUI layout
...
This value must be the page index, independent of the page current
position in its tab control, but we saved the page position instead.
Get the active page position in the "m_tabs" pseudo tab control which
always stores pages in their addition order to fix this.
2026-06-15 00:37:18 +02:00
Vadim Zeitlin
a1e910f517
Use "windows-2022" image for wxQt CI builds using MSVS 2022
...
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Update Documentation / Update Online Documentation (push) Has been cancelled
Somehow using "windows-2025" still results in "windows-2025-vs2026"
image being used (GitHub Actions bug?).
2026-06-13 22:25:53 +02:00
Vadim Zeitlin
47945b13b0
Use "windows-2025" image for wxQt builds using MSVS 2022
...
This MSVS version is not available in "windows-2025-vs2026" image to
which "windows-latest" maps now.
2026-06-13 20:52:51 +02:00
Vadim Zeitlin
fd35f189b6
Merge branch 'msw-dark-taskdlg'
...
Add dark mode support to wxMSW task dialog-based dialogs.
See #26570 .
2026-06-13 20:28:01 +02:00
Vadim Zeitlin
5bedad68dd
Remove note about wxToolBar::SetDropdownMenu() in dark mode
...
This remark is obsolete, the problem described by it was fixed by
c301af42f9 (Fix wxMSW toolbar drop down arrow appearance in dark mode,
2024-10-22).
2026-06-13 20:21:58 +02:00
Vadim Zeitlin
c3c3b70aca
Don't say that task dialogs don't support dark mode any more
...
This limitation is lifted by the changes in this branch.
2026-06-12 18:42:17 +02:00
Vadim Zeitlin
57def0bcdc
Merge branch 'darkmode-switching-checkbox' of github.com:stevecor/wxWidgets
...
Fix dark mode switching for wxCheckBox and wxRadioButton in wxMSW.
See #26572 .
2026-06-11 23:50:50 +02:00
Vadim Zeitlin
767e9c8bb9
Fix leak in wxHtmlHelpData::LoadCachedBook() after previous commit
...
Don't leak wxHtmlHelpDataItem memory, even if the data is invalid.
See #26577 .
2026-06-11 23:45:37 +02:00
Vadim Zeitlin
afe8b984a5
Simplify check for null element class
...
Return early in this case to ensure that the pointer can be used without
any checks in the code below.
No real changes.
2026-06-11 23:23:34 +02:00
Vadim Zeitlin
aeef45946c
Fix progress dialog background
...
Pass the dark brush to use in the dialog subclass proc and do not set
the class background brush to avoid it being freed.
2026-06-11 04:14:50 +02:00
Vadim Zeitlin
6132c17059
Add AutoBSTR helper to fix BSTR leaks in task dialog code
...
Also check that the returned BSTR is non-NULL before using it, as it can
be NULL even if the accessor returned S_OK.
2026-06-11 04:09:12 +02:00
Vadim Zeitlin
a36ff353aa
Take wxWindowMSW parameter in wxUxThemeHandle ctor
...
We don't need wxUniv wxWindow deriving from wxWindowMSW in that build
configuration here, just wxWindowMSW is enough and avoids the need to
cast wxWindowMSW pointers to wxWindow ones in wxUniv/MSW build.
2026-06-10 17:28:48 +02:00
Vadim Zeitlin
ec85de78d3
Fix problem with wrongly deleting the background brush
...
We shouldn't install HBRUSH owned by us as class background brush
because this brush is deleted by Windows itself, invalidating the HBRUSH
and resulting in visible problems when the background is painted using
this HBRUSH after showing a task dialog in dark mode.
Fix this by uninstalling the brush before deleting the window.
This also avoids the awkward code deleting the old class brush only if
it's not one of the standard brushes: now we don't need to do it any
longer, as we restore this brush before deleting the window.
2026-06-10 16:35:25 +02:00
Vadim Zeitlin
bbb3fc78bb
Keep a single real implementation of SetWindowSubclassIfNeeded()
...
Don't duplicate it for the special case of passing 0 as data, the
compiler should be able to optimize out the trivial lambda and doing it
like this reduces code duplication.
No real changes.
2026-06-10 16:34:31 +02:00
Vadim Zeitlin
af620105cf
Add GitHub user name of Mohmed Abdel-Fattah to "Author" lines
...
See https://github.com/wxWidgets/wxWidgets/pull/26570#discussion_r3385217953
2026-06-10 16:12:39 +02:00
Vadim Zeitlin
53d16f0144
Fix HICON leak in task dialog dark mode support code
...
Destroy the icon returned by SHGetStockIconInfo().
2026-06-08 03:18:33 +02:00
Vadim Zeitlin
97c1f3bbfb
Ignore unused parameters when dark mode support is disabled
...
Suppress harmless warnings.
2026-06-08 03:10:24 +02:00
Vadim Zeitlin
37ff69e8d4
Disable support for dark mode in task dialog for wxUniv
...
Native dialogs shouldn't be used anyhow when using wxUniv.
2026-06-08 03:06:00 +02:00
Vadim Zeitlin
1ec6163e9e
Include wx/brush.h to fix the build when not using PCH
2026-06-08 03:06:00 +02:00
Vadim Zeitlin
a2d7a75a1e
Fix HBRUSH leaks in task dialog dark mode code
...
For not totally clear reasons, the brushes allocated here were not
freed, resulting in the number of allocated brushes growing every time a
dialog was shown.
Use brushes from wxBrushList to prevent this from happening.
This doesn't fix all GDI leaks yet, there is still a USER handle and 3
GDI handlers leaked for every dialog shown, but they don't seem to be
brushes any more.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
272875a9c6
Add wrappers around window subclassing functions
...
Simplify the code a bit more by avoiding calls to GetWindowSubclass()
and then SetWindowSubclass() or RemoveWindowSubclass() with redundant
parameters.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
361dbd9626
Use wx-specific subclass IDs
...
Use the same prefix for all of our subclass IDs, this should hopefully
minimize the probability of a clash.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
b5baa3e60f
Remove unnecessary "static" from functions in anonymous namespace
...
Use of "static" is unnecessary, these functions already have internal
linkage.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
8ab0173ea3
Add GetCurrentAutomationId() helper
...
Wrap calls to IUIAutomationElement::get_CurrentAutomationId().
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
5acd403f4f
Reformat task dialog dark mode support code
...
No real changes, a lot of formatting and indentation fixes and some
minor changes restructuring the code to be simpler and more readable.
This commit is best viewed ignoring whitespace-only changes.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
26bf503af8
Use recently added wxUxThemeHandle::GetFont()
...
No real changes, just simplify the code by using wx wrapper.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
3de0aec9a5
Add WinStructWordSize<> helper and use it
...
This is similar to WinStruct<> but initializes dwSize and not cbSize
struct member.
In the future we should auto-detect the xxSize existence in WinStruct
using either SFINAE or, preferably, concepts, but for now keep things
simple.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
847561bdf6
Extend wxUxThemeHandle and use it more in dark task dialog code
...
Add HDC parameter to ::GetThemePartSize() wrappers and also add wrappers
for ::GetThemeMargins() and ::GetThemeFont().
The net effect is a small simplification of the task dialog code and
checking and logging of errors when calling these functions.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
23409e05b8
Don't do anything in TDPaintGlyphs() when using native dark theme
...
This function effectively didn't do anything anyhow in this case, just
make it more clear and save some useless work by returning immediately.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
39691558d3
Remove TDPageState::isDark
...
This wasn't used consistently, in many places TDHasNativeDarkTheme()
(which is used to initialize this member variable) was called directly,
so just stop storing its value in this variable and always call this
function, which is cheap as it caches the return value.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
683d735280
Remove TDPageState::hTDS which was same as hTD
...
The 2 themes handles were always identical, so remove one of them.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
6d45067a3c
Remove TDPageState::CloseThemes()
...
Calling this function to reset "themesOk" member variable was
inconsistent with resetting similar "elemsOk" directly, just remove the
function to make things simpler and more consistent.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
026e93d23a
Check for error after calling ::SetWindowTheme()
...
Reuse the already existing code in darkmode.cpp by extracting it into
SetTheme() function and call it from task dialog dark mode code.
Also add a helper wxHasRealDarkTheme() function to make the code more
readable.
2026-06-08 02:44:16 +02:00
Vadim Zeitlin
88b1cafa4b
Reuse GetWindowDPI() from task dialog dark mode code
...
Don't duplicate this function definition, make it internally public,
i.e. declare it, with "wx" prefix, in a private header and reuse it.
2026-06-07 21:58:06 +02:00
Vadim Zeitlin
bd03fbb6b8
Don't pass IUIAutomation as parameter to TDApplyToChildren()
...
Similar to the last comment, this IUIAutomation pointer is stored in a
global variable, so just access it directly for consistency.
2026-06-07 21:51:44 +02:00
Vadim Zeitlin
dede73a596
Don't store IUIAutomation in TDEnumData
...
This is unnecessary, as this pointer is stored in a global variable
already accessed directly from the other function, so just access it
from here as well.
2026-06-07 21:49:56 +02:00
Vadim Zeitlin
e0a95d55e4
Rename LPARAM parameter to standard "lParam" name
...
No real changes, just don't deviate from the usual convention
unnecessarily.
2026-06-07 21:49:21 +02:00
Vadim Zeitlin
db39a68c08
Stop using wxBasicString unnecessarily
...
Just use wcscmp() to check BSTR contents directly.
2026-06-07 21:47:49 +02:00
Vadim Zeitlin
a5979f400d
Add helper GetHWNDFromElement(IUIAutomationElement) function
...
Hide ugly cast from UIA_HWND to HWND in a function and also add error
handling after IUIAutomationElement::get_CurrentNativeWindowHandle()
call.
2026-06-07 21:46:43 +02:00
Vadim Zeitlin
1c6d7e96de
Don't use thread-local in task dialog dark mode support code
...
The global variables are only ever accessed from the GUI thread and
don't need to be thread-local.
Also add a wxModule to clean them up on exit.
2026-06-07 18:30:53 +02:00
Vadim Zeitlin
fac69ca3f2
Add default ctor and move assignment to wxUxThemeHandle
...
Simplify the code in task dialog dark mode support by using the new
special member functions instead of ugly workarounds that were used
before.
2026-06-07 18:14:59 +02:00
Vadim Zeitlin
8b2b9069b3
Don't define CLSID_CUIAutomation and IID_IUIAutomation ourselves
...
They should be already defined in the SDK headers.
2026-06-07 18:14:59 +02:00
Vadim Zeitlin
e1ca1dd77f
Use wxColour and wxUxThemeHandle instead of raw Windows API
...
Also don't try to get TDLG_SECONDARYPANEL and TDLG_FOOTNOTESEPARATOR
from the "TaskDialog" theme under Windows 10 as it doesn't define them.
No real changes.
2026-06-07 18:14:59 +02:00
Vadim Zeitlin
739cefeb27
Localize GET_[BGR] macros
...
Ideal would be to replace them with wxColour functions but for now at
least make their scope as small as possible.
2026-06-07 18:14:59 +02:00
Vadim Zeitlin
3ed49f0187
Use safer wxIID_PPV_ARGS() instead of cast to "void**"
...
The macro ensures that the pointer is of the correct type.
2026-06-07 18:14:59 +02:00
Vadim Zeitlin
8048524701
Return TRUE, not 1, when handling WM_ERASEBKGND
...
No real changes, just use the usual convention.
2026-06-07 18:14:59 +02:00
Vadim Zeitlin
12eed00ef7
Make IUIAutomation pointer a local variable
...
There is no need to make it a global.
Also reformat the code a bit.
2026-06-07 18:14:58 +02:00
Vadim Zeitlin
0dce46f5a1
Use AutoHBRUSH instead of manually allocating/deleting HBRUSHes
...
This allows to remove DestroyBrushes() and Destroy() itself as it was
only called before destroying TDPageState object and the brushes are now
deleted by the dtor.
Also allocate the brushes immediately when creating this object, they
will be always used and so it doesn't seem worth it to postpone doing
this.
2026-06-07 18:14:58 +02:00
Vadim Zeitlin
091ba7a895
Remove unnecessary member initialization in TDPageState ctor
...
Members are already initialized in their declarations.
2026-06-07 18:14:58 +02:00
Vadim Zeitlin
2ebde404ab
Remove WM_SETTINGCHANGE handling from task dialog proc
...
Task dialog callback never gets this message, so this code is useless.
2026-06-07 18:14:58 +02:00
Vadim Zeitlin
92254ce2db
Factor out wxIsSystemColourChange() helper function
...
Check whether the LPARAM of WM_SETTINGCHANGE is "ImmersiveColorSet".
No real changes yet, just make it possible to reuse this in the upcoming
commits.
2026-06-07 18:14:58 +02:00
Vadim Zeitlin
d93210dd5e
Fix drawing of wxCheckListBox in dark mode in wxMSW
...
Use "DarkMode_Explorer::Button" for the check box metrics and drawing as
"BUTTON" theme simply doesn't support them in dark mode and using it
resulted in check boxes in wxCheckListBox not being drawn at all.
Closes #26561 .
2026-06-07 03:07:30 +02:00
Vadim Zeitlin
3c79303182
Merge branch 'cmake-install-all-headers' of github.com:MaartenBent/wxWidgets
...
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Always install common headers when using CMake.
And fix building when some options are disabled.
See #26562 .
2026-06-06 15:55:40 +02:00
Vadim Zeitlin
ddd2b3fa63
Capture "this" explicitly in lambda used in wxMSW wxJoystick code
...
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Avoid warning about implicit "this" capture being deprecated in C++20.
2026-06-04 17:44:58 +02:00
Vadim Zeitlin
3d245236f9
Merge branch 'dpi-non-resizeable'
...
Improve TLW resizing on DPI change.
See #26550 .
2026-06-02 14:45:54 +02:00
Vadim Zeitlin
a935e63c40
Merge branch 'pg-dpi-change'
...
Fix text size in wxPropertyGrid after DPI change.
See #26549 .
2026-06-02 14:44:59 +02:00
Vadim Zeitlin
09234b9ea3
Merge branch 'aui-dpi-change'
...
Improve handling of DPI changes in wxAUI.
Currently pane positions are scaled linearly, which may result in small
discrepancies between the initial layout at the given DPI and the layout
at the same DPI after a change from another value, but this is still
much better than not doing anything.
See #26075 , #26546 .
2026-06-02 14:41:43 +02:00
Vadim Zeitlin
7c4ec03107
Avoid error messages from wxGetOsDescription() under Windows
...
The changes of 90880faafc (Output Windows 'feature update' version in
wxGetOsDescription(), 2026-06-01) could result in an error message being
logged if "DisplayVersion" value didn't exist in the registry.
Check for its existence before trying to read it to avoid this.
See #26544 .
2026-06-02 14:38:48 +02:00
Vadim Zeitlin
42c12b2d8f
Fix size of the icons loaded by wxICOResourceHandler
...
Changes of b45b02c227 (Fix loading of standard icons recently broken in
wxMSW, 2026-05-02) broke computation of the icon size which was left
empty for the non-scaled icons.
Fix this by always computing this size.
See #26370 .
2026-06-02 14:31:54 +02:00
Vadim Zeitlin
5aba16a7ce
Decrease the size of non-resizeable TLWs on DPI change
...
We avoid decreasing the size of the TLW on DPI change to preserve the
user-set size, but this logic doesn't apply to non-resizeable windows as
the user couldn't have changed their size, so do shrink them.
Closes #26485 .
2026-06-02 03:34:42 +02:00
Vadim Zeitlin
0ce04fca49
Fix adjusting TLW size after DPI change in wxMSW
...
We changed the size proposed by Windows by the double of the needed
amount.
Call wxRect::Inflate() with one half of the needed change. This may
result in 1px being lost for odd sizes but this is probably not
noticeable in practice.
2026-06-02 03:32:31 +02:00
Vadim Zeitlin
cda683d85b
Fix size of text in wxPropertyGrid after DPI change in wxMSW
...
Recreate the bitmap used for double buffering on DPI change to ensure
that it uses the correct scaling factor -- otherwise text was not scaled
correctly after a DPI change.
Closes #26490 .
2026-06-02 01:33:12 +02:00