Skip to content
wxWidgets - Cross-Platform GUI Library
Stop Russia agression of Ukraine
Stop the War in Ukraine

wxWidgets is united with the people of Ukraine and the international community.

wxWidgets 3.2.11 and 3.3.3 Released

Posted on

Making releases in both stable 3.2 and latest 3.3 series simultaneously seems to have worked well the last time, so we are doing it again today with the release of the latest stable 3.2.11 and the latest development 3.3.3 versions of wxWidgets. As before, 3.3.3 contains all the changes from 3.2.11 as well as the additional improvements not present in 3.2 series, such as further improvements to dark mode support in wxMSW, including implementing it for message dialogs and support for switching between light and dark modes during run-time.

Both releases can be downloaded from GitHub, please follow these links to download archives with the library sources and documentation as well as binaries for the selected Windows compilers such as Microsoft Visual C++ and MinGW-w64: for 3.2.11 release and for 3.3.3 one. Online documentation has also been updated and can be accessed at 3.2.11 documentation home and 3.3.3 respectively.

If you are new to wxWidgets, you may find the installation guide a good starting point. If you are upgrading to 3.3.3 from a previous version, please make sure to check the change log and, especially, the INCOMPATIBLE CHANGES section there.

Changes since previous releases

3.2.11 includes an unusually huge amount of bug fixes for possible security problems, probably prompted by the increasing use of LLMs for finding them and also helped by the addition of extra fuzzers. Upgrading to this version is strongly recommended if you use any of the functions or classes mentioned below in untrusted contexts:

  • Fix multiple buffer overflows in wxBMPHandler: when loading malformed BMP files with invalid RLE data (#26496), invalid palette for 8bpp BMPs (#26438), invalid 4bpp BMPs (#26511).
  • Fix multiple buffer overflows in wxXPMDecoder (#26442) including when parsing XPM files with unterminated quote (#26499) or with invalid width (#26519).
  • Fix multiple problems in wxGIFHandler: reject more invalid GIFs and do it without leaking memory (#26501), fix buffer overflows when decoding invalid GIFs (#26521, #26524).
  • Fix buffer overflow in wxTarInputStream (#26530).
  • Fix out-of-bounds read in wxFileType::ExpandCommand() (#26531).
  • Fix buffer overflow in wxVsnprintf() (#26522).
  • Fix out-of-bounds read in wxRegEx::Replace() (#26541).
  • Fix out-of-bounds read in wxUString (#26548).
  • Fix wxDateTime::Format() handling of invalid format (#26543).
  • Fix buffer overflow in wxGethostby{addr,name}_r() (#26528) and wxGethostbyxxx_r() (#26553).
  • Fix multiple buffer overflows in wxIFFDecoder: out-of-bounds palette write (#26440), out-of-bounds write on bad BMHD chunk (#26497) and others (#26505, #26518).
  • Fix out-of-bounds read in wxPCXHandler (#26441).
  • Fix reading ANI images with invalid frame count (#26492).
  • Fix write overflow in TGA files with invalid colour map (#26493).
  • Fix multiple buffer overflows in wxSound (#26506, #26525).
  • Fix reading too short extra field in ZIP64 files (#26507).
  • Fix out-of-bounds table read in wxMBConvUTF7::ToWChar() (#26517).
  • Fix buffer overflow reading corrupted message catalogs (#26513).
  • Fix buffer overflow for too big tables in wxHTML (#26554).

Other, non security-related, bug fixes include:

  • Fix behaviour of wxCondition and wxSemaphore::WaitTimeout() for the dates after year 2038 under Unix (#26466).
  • Fix wxCaret position in scrolled windows (#26282).
  • Correct loading of some bitmaps: 32bpp ones without valid alpha (#24219), those using delta-RLE bitmap background colour (#23599) and those using BI_BITFIELDS mode (#23601).
  • Add wxGrid::GetFrozen{Row,Col}LabelWindow() (#26617).
  • Fix compilation of wxPropertyGrid macros when wxNO_IMPLICIT_WXSTRING_ENCODING is defined (#26651).
  • wxGTK specific fixes:
    • Fix copy/paste when a clipboard manager is running (#26265).
    • Fix crash with EGL-based wxGLCanvas in wxNotebook (#26340).
    • Fix possible wxTextCtrl crash with GSpell attached (#26464).
    • Fix drawing of very large bitmaps (#25656).
    • Fix memory leak in wxDataViewChoiceRenderer.
    • Fix resource leak when using EGL with X11 (#26341).
    • Fix showing title bar under Wayland with wxBORDER_NONE (#26357).
    • Remove wrong maximum text length limitation in “picker” controls (#26314).
    • Fix appearance of dashed lines drawn by wxDC::DrawLine() (#26449).
    • Fix non-resizable TLW size when setting initial client size (#26480).
  • wxMSW specific fixes:
    • Fix wxBufferedPaintDC when using RTL layout (#26266).
  • wxOSX specific fixes:
    • Fix crash after destroying wxFileSystemWatcher in wxOSX (#26658).
    • Fix possible crash in wxFont::SetNativeFontInfo() in wxOSX (#26411).

3.3.3 release includes all the fixes from 3.2.11 above as well as some extra improvements:

  • Add dark mode support to wxMessageBox and other dialogs in wxMSW (#26570).
  • Support switching between light/dark modes in wxMSW (#26516).
  • Add support for stylus events to wxMSW (#26223).
  • Add accessibility support to wxSVGFileDC (#26379).
  • Add wxWebView::Print() and PrintToPDF() (#26239, #26583).
  • Improve wxRibbon appearance in high DPI (#26117, #26409).
  • Improve wxStaticText label wrapping in wxGTK.
  • Add wxMoveToTrash() function (#26256).
  • Enable drawing color emoji using Direct2D in wxMSW (#26657).
  • Implement C++20 <=> operator for wxString (#26306).
  • Add support for private fonts to wxQt (#26403).
  • Support building wxOSX under macOS 27 (#26578).

And, finally, some bug fixes which don’t apply to the stable branch:

  • Improve wxTarInputStream robustness (#26607).
  • Treat truncated reads as errors in wxDataInputStream (#26600).
  • Improve wxAUI behaviour on DPI changes in wxMSW (#26075).
  • Fix regression when using wxImageList in high DPI in wxGTK (#26349).
  • Fix regression with wxCheckBox label in screen readers in wxMSW (#26270).
  • Fix regression with wxPD_CAN_SKIP in 3.3.2 in wxMSW (#26287).
  • Fix wxDataViewCtrl icons rendering under macOS 26 (#26374).
  • Fix wxOSX wxOverlay leaving phantoms in Mission Control (#26380).

Feedback

Please let us know about your experience with this release via any of the following channels:

or by commenting under this post.

Thanks to all contributors to this release and we hope that you will enjoy working with it!

Comments

News Archive