update to upstream wxWidgets v3.2.11 + apply fixes#1
Draft
rubenbaldewsing wants to merge 423 commits into
Draft
Conversation
This is an ABI-compatible alternative to 98695b4 (Work around spurious gcc 15 -Wdangling-pointer with -O2, 2025-04-17) in master. See wxWidgets#25338.
Fix versioned symbols version in 3.2. See wxWidgets#25329.
Add GCC 14.2.0 to the list of MSYS GCC versions for which the Windows prebuilt binaries are available.
Extend the hack of 22bcdf0 (Don't use Cmd+C accelerator in dilogs on Mac by default., 2016-07-17) (later amended by 7a45b79 (Move the hack for Cmd+C in wxOSX to a better place, 2019-01-09), to wxID_CLOSE in addition to wxID_CANCEL and for the same reason: Cmd-C is used for copying and shouldn't active the button. See wxWidgets#15678, wxWidgets#25346. (cherry picked from commit 2b0b6d4)
Due to getting two notifications about _NET_REQUEST_FRAME_EXTENTS from mutter (GNOME WM), we didn't do the right thing as the second one arrived after mapping the window and the code assumed that in this case the window already has the correct size and only internal size needs to be adjusted. In this case, however, the window doesn't have the correct size and we need to adjust it once we get the real decoration sizes values and not just zeroes for all of them that we get during the first notification. Note that we can't just filter out that first notification because then we never map the window and so never get the second one. See wxWidgets#25348. (cherry picked from commit 9537141)
Implement GetMainWindowOfCompositeControl() in the generic version of wxDataViewCtrl so that focus is reported correctly. See wxWidgets#25372. (cherry picked from commit 863e18f)
Unfortunately the changes of f3eb19c (Fix ABI breakage for versioned symbols in 3.2.7, 2025-04-14) themselves broke another use case, as they didn't take into account the fact that ELF version includes the library flavour and hardcoded the version without it in elfversion.h. Fix this by defining wxELF_VERSION_PREFIX in configure and using it in this header to use proper symver value even when flavour is not empty. See wxWidgets#25327. Closes wxWidgets#25436.
We need to use it with the correct, i.e. existing, symbol name, which means the mangled name actually used by the linker and not just the name of the function as it appears in the source. Fix the test to actually detect lack of support for .symver when using clang with -flto. Closes wxWidgets#25438.
Document that these changes were made in 3.2.8.1 and not 3.2.9 as initially planned.
Information about the returned value was incomplete, list all the possibilities. See wxWidgets#25452. (cherry picked from commit ce7273b)
Previously this function didn't respect the path style and always used full paths in the menu items labels. Fix this by moving the logic for determining the correct label to use into GetMRUEntryLabel(), where it logically belongs. See wxWidgets#25451. (cherry picked from commit dce8b09)
Fix the workaround for not getting the correct best size when the control is empty (see wxWidgets#23382) to work for wxBitmapComboBox, which doesn't use GtkComboBoxText as its widget, too. Just call gtk_list_store_insert_with_values(), which works for any GtkListStore, instead of gtk_combo_box_text_append_text(). See wxWidgets#25468. (cherry picked from commit 7c38afe)
Ensure that the buffer scale is always the same as the GTK scale factor: Previously, wxGLCanvasEGL only set the buffer scale of the wl_surface once during the creation of the canvas. However, the GTK widget scale factor may change at any time (for example when the window is moved across monitors), which results in the EGL window size becoming out-of-sync with the surface's buffer scale when the canvas is resized. Fix this issue by updating the wl_surface buffer size whenever the canvas widget is resized. See wxWidgets#23733, wxWidgets#25465. (cherry picked from commit 7f0bc5c)
Do not apply an additional fontScalingFactor, the font has already the correct size for the DPI of the display. See wxWidgets#25277. (cherry picked from commit ae310f0)
See wxWidgets#25282. (cherry picked from commit 6dc66a9)
With backports of: 5513114 CMake: Create all mswu include directories when installing 1dc7334 CMake: Fix monolithic build with static wxWebviewEdge 3a48ac7 CMake: Add option to force all builtin libraries 51037ff Add wx/msw/mfc.h to file list ecf2b0d Fix wx-config created in CMake build with custom flavour 2ec276a CMake: Fix iOS OpenGL warning e1f0a93 CMake: Fix using Cotire for precompiled headers 35e3c14 Fix library naming when cross compiling for Windows using CMake
If the encoding is not recognized (which is the case at least for the encoding used for Persian/Farsi), wxLocale::GetSystemEncoding() returns wxFONTENCODING_DEFAULT and wxFont::SetDefaultEncoding() must not be called in this case, as it asserts and, due to a separate bug, crashes as the GUI is not fully initialized yet when wxApp::Initialize() is executing. See wxWidgets#25561. (cherry picked from commit 5de590f)
This function needs to compile with wxNO_IMPLICIT_WXSTRING_ENCODING defined, as there are some calls to it in wx headers (at least wx/msw/private.h which, unfortunately, gets included when PCH is used, i.e. practically always with MSVC). Fix its compilation in this case by using wide char __TFILE__ instead of __FILE__ which would have to be wrapped in wxString::FromAscii() or FromUTF8(). See wxWidgets#25568. (cherry picked from commit 1be2e48)
Don't overwrite the existing m_refData in wxColour::InitRGBA() implementation, as this could result in leaking it. Ensure that we are its unique owners, which allocates it if necessary, and then assign to the existing object instead. See wxWidgets#25569. (cherry picked from commit c7e5ac1)
See wxWidgets#25562 (cherry picked from commit afb11cf)
When the sizer is completely empty, it makes more sense to return 0 from these functions without asserting. See wxWidgets#25642, wxWidgets#25641. (cherry picked from commit d1be72a)
If an event handler for wxEVT_DATAVIEW_SELECTION_CHANGED called Collapse() itself (which is weird but allowed), Collapse() still tried to collapse it again, which could result in the count of items becoming negative and all sorts of other problems. Avoid them by not doing anything if the item has been collapsed after the selection change. See wxWidgets#25638, wxWidgets#25631. (cherry picked from commit 0396c26)
This shouldn't normally happen, but if it does, e.g. because all the GDI resources have been exhausted, we still shouldn't crash, so check for this. See wxWidgets#24703, wxWidgets#24705. (cherry picked from commit a6203be)
MSVS 2019 is only available in windows-2019 image which is being retired by GitHub, see actions/runner-images#12045 (cherry picked from commit b9e3dc1)
Don't rely on implicit conversion to "char*" which may be unavailable and call utf8_str() explicitly instead. See afb11cf (Use system default titlebar decorations under Wayland, 2025-06-25) and wxWidgets#25562. (cherry picked from commit 666f748)
If a panel contained a notebook and some other element(s) that didn't accept focus (e.g. because they were disabled), TAB didn't wrap around correctly. Fix this by ensuring the focus gets to the notebook itself in this case by handling it in wxNotebook itself if the parent didn't do anything. See wxWidgets#25443. (cherry picked from commit a2ed8ac)
Use the key translated to the US layout by XKB and not the actual character produced by the key in the current layout when determining whether to generate wxEVT_CHAR for key presses with Ctrl or not. This ensures that we produce the expected events for Ctrl-Latter in all layouts and not just the ones using Latin letters. See wxWidgets#25384, wxWidgets#25385. (cherry picked from commit 57c33bb)
Don't set background colour to uninitialized memory contents, just ignore the invalid index. See wxWidgets#26582. (cherry picked from commit 7ee01fa)
This function allocates the palette r/g/b arrays from the colour count given in the XPM header but fills them by walking the colour map, so a malformed file that reuses the same key on more than one colour line collapses those lines into a single map entry and leaves the tail of the arrays uninitialised. wxPalette() then copies that uninitialised memory into the palette later returned by GetPalette(), and in debug builds the wxASSERT(i == colors_cnt) at the end fires. Use the actual number of distinct colours in the map as the size for the arrays and the palette to fix this. Also add a test loading an XPM triggering this issue. See wxWidgets#26595. (cherry picked from commit 788b458)
Creating a Cairo "similar image" surface seems to use a lot of memory for very large images, resulting in what is probably an out-of-memory condition. Using a plain image surface allows sizes up to the Cairo limit of 32767x32767 to be handled. See wxWidgets#25656 (cherry picked from commit ecb37e8)
Run ./misc/scripts/inc_release, bakefile and autoconf.
These accessors for the frozen row and column label sub-windows were missing from the public API even though the equivalent data cell windows (GetFrozenRowGridWindow/GetFrozenColGridWindow) are already public. Without them it is impossible to bind events (e.g. EVT_MOTION) to the frozen label strips from outside the wxGrid implementation. See wxWidgets#26617. (cherry picked from commit e069b7f) Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>
Amend the changes of 644b99d (Make wxSocket::Peek() work with UDP too, 2023-06-03), see wxWidgets#23594, wxWidgets#23604.
Limit sscanf field widths to avoid overflowing fixed size buffers in wxPostScriptDC code. See wxWidgets#26645. (cherry picked from commit b0e297a)
Use wide-char literal string instead of an ASCII one to fix compilation. See wxWidgets#26651. (cherry picked from commit aae2d70)
backport of d3cdfc8
backport of 24571ab
Automatically update outdated WebView2 package backport of 210d1db Don't use /MP option when not using MSVS CMake generator backport of 8ef84ab Set the wx-config RESCOMP value backport of 48092f2 Allow to override wx_option_auto backport of 764d775 Don't install release PDBs when stripped releases is enabled backport of 8c1ede6 Slightly simplify and make more robust CMake version parsing backport of 8933626 Build wxxml in non-GUI builds too backport of 8af1ec0 change wxUSE_CONFIG_NATIVE setting logic in backport of 9377ec7 Add detection of SM library to CMake backport of f275d6f Re-enable wxUSE_DETECT_SM by default in CMake builds backport of cfb3856 Improve checks for GTK3 on macOS backport of 92820ce Only enable wxUSE_HOTKEY on wxMSW and wxOSX backport of 32ca366 Disable wxUSE_FSVOLUME in the ports not supporting it backport of 6e8eac9 Backport RES_BUNDLE option
…gets into 3.2 Backport some/most CMake improvements from master. See wxWidgets#26653.
Use a distinct value for MSVS 2026 with wxMSVC_VERSION_AUTO. Note that vc144 should have been used for MSVS 2022 v17.14, see https://learn.microsoft.com/en-us/cpp/overview/compiler-versions but we didn't do it, so there is a hole between vc143 and vc145. (cherry picked from commit a0f5c92)
Change WX_VERSION in all Makefile.in files.
(cherry picked from commit 9006641)
Ensure all watches are removed before the object using them is destroyed to avoid using the already destroyed object later, which resulted in a crash. See wxWidgets#26658. (cherry picked from commit bc73166)
Update version and date.
This should have been part of the parent commit.
Make it possible to (re)generate the docs for some version, e.g. if the old documentation was somehow lost.
The problem that had been previously fixed in our fork should be fixed upstream too by now. (cherry picked from commit 2fd8945)
- prevent duplicate printable-key dispatch and commit native select input\n- apply the host system palette to DOM-backed controls and menus\n- keep HiDPI bitmap payloads while sizing controls in logical pixels
timfroh
approved these changes
Jul 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
add all commits from wxWidgets v3.2.11
add these fixes on top: