mirror of
https://github.com/wxWidgets/wxWidgets.git
synced 2026-08-18 01:19:45 +08:00
Avoid the wxAuiNotebook center pane having non-zero dock_layer, dock_row, or dock_pos values as it doesn't make sense for it. Closes #26679.
717 lines
36 KiB
Plaintext
717 lines
36 KiB
Plaintext
-------------------------------------------------------------------------------
|
|
wxWidgets Change Log
|
|
-------------------------------------------------------------------------------
|
|
|
|
Note: This file contains the list of changes since wxWidgets 3.2, please see
|
|
docs/changes_32.txt for the earlier changes.
|
|
|
|
INCOMPATIBLE CHANGES SINCE 3.2.x:
|
|
=================================
|
|
|
|
Changes in behaviour not resulting in compilation errors
|
|
--------------------------------------------------------
|
|
|
|
- wxMSW doesn't support versions of Microsoft Windows before Windows 7. If you
|
|
need Windows XP or Vista support, please use wxWidgets 3.2.
|
|
|
|
- Default exit code in case of fatal error is now consistently 255, including
|
|
when using MSVC for which it was 127 previously. Use wxApp::SetErrorExitCode()
|
|
and wxApp::SetFatalErrorExitCode() to change this to old value if needed.
|
|
|
|
- wxGLCanvas doesn't use multi-sampling by default any longer, please use
|
|
wxGLAttributes::Samplers(1).SampleBuffers(4) explicitly if you need to keep
|
|
using the same attributes that were previously used by default.
|
|
|
|
- Default location of file used by wxFileConfig under Unix has changed to
|
|
XDG-compliant ~/.config/appname.conf instead of ~/.appname but note that
|
|
any existing files at the old location will still continue to be used.
|
|
See wxCONFIG_USE_XDG and wxCONFIG_USE_HOME for how to customize this
|
|
behaviour. You may also find wxFileConfig::MigrateLocalFile() useful.
|
|
|
|
- Values of many colours in wxColourDatabase have been changed to use the
|
|
values from the CSS standard. Use wxColourDatabase::UseScheme() to revert to
|
|
using the traditional values if your application appearance depends on them.
|
|
|
|
- Default art provider (theme) used by wxAuiNotebook has changed. Set the art
|
|
provider to wxAuiNativeTabArt in the code or use "native" in XRC to switch
|
|
to the previously used default theme.
|
|
|
|
- As first mentioned in 3.0 release notes, the value of wxTHREAD_WAIT_DEFAULT,
|
|
used by wxThread::Delete() and Wait() by default, has changed from
|
|
wxTHREAD_WAIT_YIELD to wxTHREAD_WAIT_BLOCK for safety and consistency.
|
|
|
|
- wxDocument::OnCloseDocument() was called twice in previous versions when
|
|
closing the document from the menu. Now it is only called once and after
|
|
destroying all the existing document views. If you overrode this function,
|
|
please check that you don't rely on any views existing when it's called.
|
|
|
|
- wxGrid::FreezeTo() now asserts when passed invalid (out of range) number of
|
|
rows or columns to freeze. But it also does freeze the requested rows/columns
|
|
even if the grid is currently too small to show all of them or if there are
|
|
no unfrozen rows/columns remaining.
|
|
|
|
- Calling wxImageList methods on an invalid wxImageList object now consistently
|
|
results in assert failures instead of just failing silently. To avoid these
|
|
asserts, make sure that wxImageList is created with a valid size before
|
|
operating on it.
|
|
|
|
- wxTRANSPARENT_WINDOW doesn't do anything and shouldn't be used any more. If
|
|
you ever used it under MSW (it never did anything in the other ports), you
|
|
can turn on the native WS_EX_TRANSPARENT extended style if really needed.
|
|
|
|
- In wxMSW, size passed to wxTextDataObject::SetData() must include the size of
|
|
the trailing NUL (in bytes, i.e. 2) now, for consistency with GetDataSize().
|
|
Typically this function shouldn't be used directly as SetText() should be
|
|
used instead, but if you do use it, you need to update your code to prevent
|
|
the last character of the data from being chopped.
|
|
|
|
- Calling wxListCtrl::EditLabel() now asserts if the control doesn't have
|
|
wxLC_EDIT_LABELS style: previously this silently didn't work in wxMSW.
|
|
|
|
- wxSystemAppearance::IsDark() now returns whether this application uses dark
|
|
mode under MSW, use the new AreAppsDark() or IsSystemDark() to check if the
|
|
other applications or the system are using dark mode.
|
|
|
|
- wxUILocale::IsSupported() now returns false for unavailable locales under
|
|
Unix systems without trying to fall back on another locale using the same
|
|
language in a different region, e.g. it doesn't use fr_FR if fr_BE is not
|
|
available. If any locale using the given language is acceptable, the region
|
|
must be left empty, e.g. just "fr" would use any available "fr_XX".
|
|
|
|
- Deprecated wxPGCellRenderer::DrawCaptionSelectionRect() overload is not
|
|
called any longer by default, you need to explicitly enable 3.0 compatibility
|
|
or change your code to override the newer overload, taking a wxWindow pointer.
|
|
|
|
- wxImageList size is now expressed in physical pixels, i.e. its size must be
|
|
the same as the size of bitmaps added to it, in pixels. This is inconvenient
|
|
but should be viewed as a hint not to use wxImageList (but wxBitmapBundle)
|
|
in the applications supporting high DPI.
|
|
|
|
- wxWebRequest doesn't use persistent storage under Mac any longer, as this
|
|
made its behaviour there incompatible with the other platforms. Please call
|
|
wxWebRequest::EnablePersistentStorage() explicitly if you need it.
|
|
|
|
- In wxMSW, behaviour of wxBitmap::Create(size, dc) overload has changed to
|
|
not scale the size by the content scale factor of the DC any longer, as the
|
|
size here is expressed in physical pixels and not in DIPs.
|
|
|
|
- wxIMAGE_QUALITY_NEAREST has a different numeric value and is not the same
|
|
as wxIMAGE_QUALITY_NORMAL any longer, see documentation for more details.
|
|
|
|
- wxTextCtrl::{Save,Load}File() will use RTF format when saving/loading files
|
|
with .rtf extension, and not plain text any longer, by default for the
|
|
platforms with RTF support. If you need to save/load plain text even for the
|
|
files with the .rtf extension, specify wxTEXT_TYPE_PLAIN explicitly.
|
|
|
|
- wxClientDC and wxPaintDC now correctly offset their origin by wxFrame
|
|
toolbar, if any. This is consistent with the behaviour of the other ports
|
|
but may require removing any compensation for not doing this before that may
|
|
be present in the application code.
|
|
|
|
- Calling wxTextCtrl::SetLabel() now consistently does nothing and asserts
|
|
under all platforms instead of behaving as SetValue() under MSW and doing
|
|
nothing elsewhere.
|
|
|
|
- If you have a custom class deriving from wxAuiGenericTabArt, possibly
|
|
indirectly, e.g. via wxAuiMSWTabArt, you need to update it to override the
|
|
new virtual functions DrawPageTab() and GetPageTabSize() instead of
|
|
overriding the old DrawTab() and GetTabSize(). Note that this is not needed
|
|
if your class inherits directly from wxAuiTabArt, as it will continue to work
|
|
in this case (but switching to the new functions is still recommended).
|
|
|
|
- The meaning of page index in wxAuiNotebook has changed if the pages have
|
|
been reordered (see wxAUI_NB_TAB_MOVE) and now always refers to the page
|
|
logical index, which is not affected by reordering. To get the position of
|
|
the page on screen, which doesn't make sense without reference to the tab
|
|
control containing it, use GetPagePosition() to retrieve both of them.
|
|
|
|
- wxListbook and wxChoicebook now interpret (but ignore) mnemonics in their
|
|
page titles, just as the other wx*book classes already did. Double "&"
|
|
in the page text if it should be interpreted as a literal "&".
|
|
|
|
- wxAUI_MGR_HINT_FADE is not included in default wxAuiManager style any longer,
|
|
please add it explicitly if you really want to use it.
|
|
|
|
- Behaviour of wxPrintDialogData::SetAllPages() and SetSelection() has
|
|
changed when called with "false" argument, please review the documentation
|
|
and update your code if you called them with "false" (which is rarely done).
|
|
|
|
- wxWindow::Raise() doesn't show the window in all the ports now, just as it
|
|
already didn't do it in wxMSW. Call Show() explicitly before Raise() if
|
|
necessary.
|
|
|
|
- wxDF_TEXT on macOS now corresponds to the text in UTF-8 encoding instead of
|
|
previously used MacRoman. No changes are necessary for the programs using
|
|
wxTextDataObject, but for the code working with the raw bytes in this format
|
|
you may need to change it to use wxConvUTF8 instead of wxConvLocal.
|
|
|
|
- Creating central wxAUI pane window with non-zero layer, row or position
|
|
values was previously silently allowed but couldn't work correctly, so now
|
|
attempting to do it will assert. Don't set these values for the central pane.
|
|
|
|
|
|
Changes in behaviour which may result in build errors
|
|
-----------------------------------------------------
|
|
|
|
- Symbols deprecated in 3.0 are still available in this version but disabled by
|
|
default, you need to set WXWIN_COMPATIBILITY_3_0 to 1 to enable them. Symbols
|
|
deprecated in 2.8 are not available any longer.
|
|
|
|
- Building with wxUSE_UNICODE=0 is not supported any longer.
|
|
|
|
- wxUSE_STD_CONTAINERS is now set to 1 by default, see "Container Classes"
|
|
overview in the manual for the description of the changes this may require in
|
|
the existing code. Alternatively, explicitly set wxUSE_STD_CONTAINERS=0 when
|
|
compiling the library to preserve full compatibility with the old versions.
|
|
|
|
- wxUSE_STL option doesn't exist any longer, standard library is always used.
|
|
However, previously setting wxUSE_STL=1 enabled implicit conversion from
|
|
wxString to std::[w]string which are not enabled by default now, please set
|
|
wxUSE_STD_STRING_CONV_IN_WXSTRING=1 explicitly if you need them.
|
|
|
|
- wxMSW now requires linking with gdiplus.lib and msimg32.lib.
|
|
This is done automatically in most cases, but if you use a static build of
|
|
the library with a non-MSVC compiler such as MinGW and do not use wx-config,
|
|
then you will need to add these libraries to your make or project files
|
|
yourself.
|
|
|
|
- wxMotif and wxGTK1 ports have been removed, please use wxWidgets 3.2 if you
|
|
still need them.
|
|
|
|
- Several private container classes that never made part of wxWidgets public
|
|
API have been removed. If you used any of them (e.g. wxSimpleDataObjectList)
|
|
in your code, please switch to using std::vector<> or std::list<> instead.
|
|
Some other legacy "object array" classes (e.g. wxImageArray) still exist, but
|
|
are now similar to std::vector<> containing the objects -- they remain mostly
|
|
compatible with the previous wxWidgets versions, but now compare values, and
|
|
not pointers, in their Index() member function.
|
|
|
|
- All operators (e.g. "==", "+", etc) on wx types are not defined in global
|
|
scope any more, resulting in much better error messages but also preventing
|
|
them from implicitly being used with types convertible to wx types. If you
|
|
really need to use these operators with your own types, please use explicit
|
|
conversions.
|
|
|
|
- Due to the possibility to construct wxString from std::string_view some
|
|
previously valid code, such as "wxstr = {"Hello", 2}", is now ambiguous.
|
|
Please use explicit class name, e.g. "wxstr = wxString{"Hello", 2}" to
|
|
preserve the previous behaviour.
|
|
|
|
- Generic wxSearchCtrl doesn't provide methods that make sense only for
|
|
multiline text controls any longer, for consistency with the other ports.
|
|
|
|
- wxOnAssert() overload taking wide character file name was removed. If you
|
|
call it for any reason, please use one of the other overloads instead.
|
|
|
|
- 64-bit DLLs now use "x64" suffix in their names for all builds, not just
|
|
the official ones and those using MSVS projects, but also when using
|
|
makefile.vc or CMake, for consistency.
|
|
|
|
- CMake files are now installed in a versioned subdirectory, e.g.
|
|
lib/cmake/wxWidgets-3.3, to allow installing multiple versions of wxWidgets
|
|
simultaneously, and not just "wxWidgets" as before. Please update your
|
|
CMake files if you rely on the exact name of this directory. Note that
|
|
nothing needs to be done if you simply use find_package(wxWidgets) as it
|
|
still works in the same way as before.
|
|
|
|
- Support for memory debugging that was previously disabled but could be
|
|
activated by using wxUSE_MEMORY_TRACING, wxUSE_GLOBAL_MEMORY_OPERATORS etc
|
|
options was completely removed. Please use address sanitizer or similar
|
|
tools that are incomparably more useful for this than that legacy code.
|
|
|
|
- wxTEST_DIALOG() macro now must be followed by semicolon, whereas previously
|
|
it was only supposed to, but it wasn't mandatory to use one after it.
|
|
|
|
- wxWindow::GetDefaultBorderForControl() is not virtual any longer and will
|
|
be completely removed in the future. If you overrode this function, don't
|
|
do it any longer. If you call it, replace it with wxBORDER_THEME constant.
|
|
|
|
- wxGTK wxDirButton::Create() doesn't have unused "wildcard" parameter any
|
|
longer, please just remove it from your code if you used it.
|
|
|
|
- Several functions now take wxReadOnlyDC instead of wxDC as argument. While
|
|
any code calling these functions keeps compiling and working, classes that
|
|
override these functions must be updated to use the new argument type too.
|
|
Simply replacing wxDC with wxReadOnlyDC should be sufficient.
|
|
|
|
- wxSizer::Detach() takes wxWindowBase pointer now instead of wxWindow.
|
|
This only matters if you override this virtual function in your own classes
|
|
deriving from wxSizer, please change the function in the derived class to
|
|
take wxWindowBase pointer too in this case.
|
|
|
|
- wx/cursor.h doesn't include wx/utils.h any longer, please include it
|
|
explicitly if you need to use any functions defined there other than
|
|
cursor-related ones.
|
|
|
|
- wxStyledTextCtrl::AddSelection() erroneously returned int, while the
|
|
corresponding Scintilla doesn't have any return value, so it was changed
|
|
to return void, please update your code to not use its return value.
|
|
|
|
- Code unintentionally and mistakenly using wxColour ctor from bool that
|
|
previously compiled doesn't compile any longer, please fix it to use either
|
|
the ctor from RGB value or from string explicitly.
|
|
|
|
- wxGLCanvas::CreateSurface() which was previously enabled in build
|
|
configurations using EGL is not available any longer as exposing it doesn't
|
|
make sense when wxGLCanvas may use either EGL or GLX.
|
|
|
|
- wxWithImages::GetImageLogicalSize() overload taking the icon index didn't
|
|
make sense and was removed, please use the other overload instead if needed.
|
|
|
|
|
|
3.3.4: (released 2026-??-??)
|
|
----------------------------
|
|
|
|
NOTE: In addition to the note below, also incorporate (either by
|
|
copy or by reference) all the changes in the 3.2 branch (i.e.
|
|
everything in this file after 3.2.0 in that branch).
|
|
|
|
NOTE: This file is updated only before the release, please use
|
|
$ git log --notes=changelog --format='%N' v3.3.2..|grep .
|
|
to see all the change log entries since the last release.
|
|
|
|
To update the notes, fetch them first:
|
|
$ git fetch origin refs/notes/changelog:refs/notes/changelog
|
|
then use the following command to update them locally
|
|
$ git notes --ref=changelog add -m 'wxPort: description.'
|
|
and finally push it to the server.
|
|
$ git push origin refs/notes/changelog:refs/notes/changelog
|
|
|
|
If this fails due to a conflict because you had forgotten to
|
|
run git-fetch first, you can always reset your local notes
|
|
(LOSING YOUR CHANGES TO THEM, so make sure to make a copy)
|
|
$ git fetch origin refs/notes/changelog
|
|
$ git update-ref refs/notes/changelog FETCH_HEAD
|
|
|
|
and then redo "git-notes add" and git-push.
|
|
|
|
|
|
3.3.3: (released 2026-07-07)
|
|
----------------------------
|
|
|
|
Please note that this is a list of changes compared to 3.2.11, the full list of
|
|
changes since 3.3.2 also includes all changes between 3.2.10 and 3.2.11.
|
|
|
|
All:
|
|
|
|
- Add wxMoveToTrash() function (Blake-Madden, #26256).
|
|
- Add wxTarInputStream::SetMaxExtendedHeaderSize() (Arthur Chan, #26607).
|
|
- CMake improvements to installation and wxbase_only (Maarten Bent, #26325).
|
|
- Implement C++20 <=> operator for wxString (#26306).
|
|
- Make wxGetOsDescription() more useful under Linux (Lauri Nurmi, #26231).
|
|
- Treat truncated reads as errors in wxDataInputStream (dxbjavid, #26600).
|
|
|
|
All (GUI):
|
|
|
|
- Add accessibility support to wxSVGFileDC (Blake-Madden, #26379).
|
|
- Add fluent UI-like wxRibbon art provider (Blake-Madden, #26253).
|
|
- Add support for print settings to wxWebView::Print() (Blake-Madden, #26239).
|
|
- Add wxGrid::GetFrozenRowLabelWindow() and GetFrozenColLabelWindow() (Jorge Moraleda, #26617).
|
|
- Add wxSVGFileDC::GetSVGDocument() (Blake-Madden, #26344).
|
|
- Add wxSizer::DetachItem() (Ryan Ogurek, #26512).
|
|
- Add wxWebView::PrintToPDF() (Blake-Madden, #26583).
|
|
- Add wxWebViewConfiguration::DisableGPUAcceleration() (Blake-Madden, #26626).
|
|
- Fix wxRibbon icons in high DPI (Blake-Madden, #26409).
|
|
- Use wxBitmapBundle in wxRibbon (Randalphwa, #26117).
|
|
|
|
wxGTK:
|
|
|
|
- Add support for high DPI bitmaps to wxAboutBox (#22192).
|
|
- Fix assert when clipboard has non-ASCII targets (#26263).
|
|
- Fix regression in building with GTK without Wayland support (#26269).
|
|
- Fix regression when using wxImageList in high DPI (#26349).
|
|
- Fix wxStaticText label wrapping.
|
|
|
|
wxMSW:
|
|
|
|
- Add dark mode support to wxMessageDialog (Mohmed abdel-fattah, #26570).
|
|
- Add support for stylus events (Iulian-Nicu Serbanoiu, #26223).
|
|
- Enable drawing color emoji using Direct2D (Tobias Predel, #26657).
|
|
- Fix combo/listbox colours in dark mode in latest Windows 11 (Fefedu973, #26535).
|
|
- Fix regression in drawing text with Direct2D graphics context (#26259).
|
|
- Fix regression with wxCheckBox label in screen readers (#26270).
|
|
- Fix regression with wxPD_CAN_SKIP in 3.3.2 (#26287).
|
|
- Implement support for switching between light/dark modes (Steve Cornett, #26516).
|
|
- Use inches in page setup dialog if needed (Richard, #9177).
|
|
|
|
wxOSX:
|
|
|
|
- Fix dataview icons rendering under macOS 26 (#26374).
|
|
- Fix wxOverlay leaving phantoms in Mission Control (Daniel DeMoney, #26380).
|
|
- Set value in EVT_DATAVIEW_ITEM_EDITING_DONE (Robert Roebling, #26367).
|
|
- Update XCode project to support macOS 27 (#26578).
|
|
|
|
wxQt
|
|
|
|
- Add support for private fonts (AtesComp, #26403).
|
|
|
|
|
|
3.3.2: (released 2026-03-03)
|
|
----------------------------
|
|
|
|
Please note that this is a list of changes compared to 3.2.10, the full list of
|
|
changes since 3.3.1 also includes all changes in 3.2.9 and 3.2.10 releases.
|
|
|
|
All:
|
|
|
|
- Add wxWebRequestDebugLogger (#26086).
|
|
- Fix bitmap position in wxDC::DrawLabel() in high DPI (Blake Madden, #25888).
|
|
- Fix using wxSOCKET_NOWAIT_READ|wxSOCKET_WAITALL_WRITE (#17114).
|
|
- Improve number and currency formatting (Ulrich Telle, #25765).
|
|
- Support configurable timeouts in wxWebRequest (Brian Delalex, #25673).
|
|
- Update all 3rd party libraries to latest versions (Maarten Bent, #26010).
|
|
|
|
All (GUI):
|
|
|
|
- Add support for minimizing panes in wxAUI (#23986).
|
|
- Add support for using LunaSVG (Randalphwa, #25902).
|
|
- Add wxDisplay::GetRawPPI() (#26082).
|
|
- Add wxGLCanvas::ClearCurrent() (#25958), SetSwapInterval() (#25449)
|
|
and GetProcAddress() (#9215).
|
|
- Add wxStyledTextCtrlMiniMap (#25887).
|
|
- Add wxTextEntryDialog::SetHint() (Lauri Nurmi, #26176).
|
|
- Fix crash on mouse hover after closing tab in wxAuiNotebook (#25959).
|
|
- Implement automatic wrapping of wxStaticText (Robert Roebling, #25753).
|
|
- Improve splitting behaviour in wxAuiNotebook (#26081).
|
|
- Make generic wxCalendarCtrl DPI-aware (Maarten Bent, #25713).
|
|
- Make wxDC-derived objects moveable (#25726).
|
|
- Make wxScrolled<> autoscroll configurable (Bill Su, #25978).
|
|
- Many RTL layout fixes in wxMSW and wxGTK (AliKet, #25426).
|
|
- Provide safer API for detecting closing wxTipWindow (Bill Su, #26070).
|
|
- Restore columns positions in wxPersistentDVC (Vadym Hrynchyshyn, #26222).
|
|
- Significant wxSVGFileDC improvements (Maarten Bent, #25723).
|
|
|
|
wxGTK:
|
|
|
|
- Allow using GLX and EGL in same program (#26023).
|
|
- Fix multiple bugs in gesture handling (Filip Hejsek, #26241).
|
|
- Make WarpPointer() work with supported Wayland compositors (#23778).
|
|
- Support wxDIRP_DIR_MUST_EXIST in wxDirPickerCtrl.
|
|
|
|
wxMSW:
|
|
|
|
- Accessibility: fix support for it in wxCheckBox in dark mode (Quin Gillespie,
|
|
#26184), implement full support for it in wxCheckListBox (Glen Gordon,
|
|
#25948) and wxStyledTextCtrl (Maarten Bent, #25956) and basic support in
|
|
wxRichTextCtrl (Joshua Lee Ockert, #26202).
|
|
- Add MSVS 2026 projects and solution files (PB, #26131).
|
|
- Add wxNO_WIN32_W (Maarten Bent, #25965).
|
|
- Dark mode improvements: rendering of several controls (Thomas Modes, #25835),
|
|
toolbar (#25892) and menus (Mohmed abdel-fattah, #26182).
|
|
- Fix MSVS debug visualizer for wxString (#25684).
|
|
- Revert use of WS_EX_COMPOSITED in previous 3.3 versions (#25808).
|
|
|
|
wxOSX:
|
|
|
|
- Add support for more axis in wxJoystick (Sean Maas, #26216).
|
|
- Add support for suspend/resume event generation (Tijs Van Buggenhout, #25778).
|
|
- Fix grid lines in dark mode (Daniel Kulp, #25783).
|
|
- Fix nested markup attributes handling (Václav Slavík, #25864).
|
|
- Make click events consistent with wxMSW (Robert Roebling, #25886).
|
|
- Use threaded animation for wxGA_SMOOTH (Will Cosgrove, #25906).
|
|
- Visual fixes for macOS 26 Tahoe (#25766, #25743, #25767)
|
|
|
|
wxQt:
|
|
|
|
- Add printing support (AliKet, #26126).
|
|
- Implement wxArtProvider (AliKet, #26210).
|
|
- Many fixes for RTL layout (AliKet, #25822).
|
|
|
|
wxiOS:
|
|
|
|
- Implement scrolling support (Robert Roebling, #25827).
|
|
- Implement wxListBox (Robert Roebling, #25858).
|
|
- Implement wxNotebook (Robert Roebling, #25857).
|
|
|
|
|
|
3.3.1: (released 2025-07-21)
|
|
----------------------------
|
|
|
|
All:
|
|
|
|
- Add persistence support for groups of wxRadioButtons (#25530).
|
|
- Add persistence support for wxCheckBox (#25515).
|
|
- Add support for PNG "Description" text chunk (GenevensiS, #25556).
|
|
- Add wxAuiPaneInfo::FloatingClientSize() (Bill Su, #25483).
|
|
- Allow setting app id under supported platforms (#25548).
|
|
- Avoid wxEVT_GRID_SELECT_CELL when creating wxGrid (#25498).
|
|
- CMake fixes and improvements (Maarten Bent, #25466, #25503, #25592).
|
|
- Don't assert in wxGridSizer if sizer is empty (#25641).
|
|
- Fix calling wxDVC::Collapse() from event handler (#25631).
|
|
- Fix overwriting IDs of buttons added to wxPGMultiButton (alilie, #25514).
|
|
- Improve wxRect2DDouble (Blake-Madden, #25497).
|
|
- Restore compatibility in wxPropertyGrid (#25627).
|
|
- wxNumberFormatter improvements (#25614, #25635).
|
|
- Make static reproducible builds under Unix really reproducible (#25502).
|
|
|
|
wxGTK:
|
|
|
|
- Fix crash when sorting wxDataViewCtrl with single leaf node (#25625).
|
|
- Fix losing wxListCtrl contents after AppendColumn() (#25519).
|
|
|
|
wxMSW:
|
|
|
|
- Fix buffer overrun when getting preferred languages list (#25612).
|
|
- Fix crash when using per-window menu in MDI applications (#25522).
|
|
- Fix crash with wxStaticBitmap inside wxNotebook in dark mode (#25499).
|
|
- Fix disabled wxButton bitmaps appearance in dark mode (#25575).
|
|
- Fix disabled wxStaticText appearance in dark mode (#25574).
|
|
- Fix notebook background in dark high contrast themes (#25542).
|
|
- Fix regression in creation of wxAcceleratorTable with 0 entries (#25517).
|
|
- Fix regression in wxDataViewCtrl border in light mode (#25532).
|
|
- Fix regression in wxTreeCtrl::EnsureVisible() while frozen (#18435).
|
|
- Fix selected toolbar buttons in dark mode (Stefan Ziegler, #25616).
|
|
- Fix wxComboCtrl appearance in dark mode (#23766).
|
|
- Fix wxTE_RICH wxTextCtrl appearance in dark mode (#25602).
|
|
- Restore date/time pickers behaviour under non-English OS (#25511).
|
|
|
|
wxOSX:
|
|
|
|
- Fix border look for wxDVC, wxListBox, wxTextCtrl (Will Cosgrove, #25570).
|
|
- Fix crash on startup when using Farsi as system language (#25561).
|
|
|
|
|
|
3.3.0: (released 2025-06-06)
|
|
----------------------------
|
|
|
|
This release contains the following major changes compared to 3.2.8:
|
|
|
|
- Add experimental dark mode support to wxMSW (#23028)
|
|
- Add Chromium-based wxWebView backend (#706).
|
|
- Add support for WebP images (Hermann Höhne, Maarten Bent, #25205).
|
|
- Add support for pinned/locked (#25187) and multi-row (#25076) wxAUI tabs.
|
|
- Add synchronous (blocking) version of wxWebRequest (#24760).
|
|
- Add API for raw touch events (Martin Koegler, #17077).
|
|
- Implement accessibility support for wxGrid (Dietmar Schwertberger, #24368).
|
|
- Implement power events and blockers support under Unix (#22396, #23717)
|
|
- Use native file dialogs if possible in wxGTK (#24486, #25104).
|
|
- Provide access to native wxTextCtrl contents (Blake-Madden, #24626, #24912).
|
|
|
|
Other changes are listed in alphabetical order in platform-specific sections:
|
|
|
|
All:
|
|
|
|
- Accept std::initializer_list in wxArray ctor (Lotendan, #23309).
|
|
- Add US Catholic Feasts support to wxDateTime (Blake Madden, #24094)
|
|
- Add WXLOG_TIME_FORMAT environment variable (#23576).
|
|
- Add __WXFUNCTION_SIG__ (Blake-Madden, #24554).
|
|
- Add catch-unhandled-exceptions system option (Lauri Nurmi, #25257).
|
|
- Add date-related localization functions (Ulrich Telle, #23556).
|
|
- Add support for setting base URL in wxWebRequest (#24769).
|
|
- Add support for setting the proxy to use in wxWebRequest (#24762).
|
|
- Add wxGrid::Enable{Row,Col}Resize().
|
|
- Add wxNODISCARD and use it for some functions (PB, #22943).
|
|
- Add wxNO_REQUIRE_LITERAL_MSGIDS (Lauri Nurmi, #24957).
|
|
- Add wxString::wc_string() (#23463).
|
|
- Add wxURI::SetUserAndPassword() (#25240).
|
|
- Add wxWARN_UNUSED and use it for wxString (Lauri Nurmi, #24833).
|
|
- Add wxWebSession::EnablePersistentStorage() (Tobias Taschner, #23743).
|
|
- Add wxXmlParseError to wxXmlDocument::Load() (Randalphwa, #24215).
|
|
- Allow customizing exit code in case of error (#24770).
|
|
- Allow using lambdas with Bind() without RTTI (MapleLeaf-X, #14850).
|
|
- Allow using wxMessageQueue with move-only types (#25026).
|
|
- Avoid DNS lookup when constructing wxIPV4address from IP (SMMB-DEV, #23109).
|
|
- Fix multiple bugs in wxURI parsing (Ryan Norton, #23360).
|
|
- Fix wxSocket::Peek() with UDP sockets (Brian Nixon, #23594).
|
|
- Fix wxWebResponse::GetMimeType(), add GetContentType() (Blake-Madden, #23461).
|
|
- Improve locale matching algorithm (Ulrich Telle, #24855)
|
|
- Make wxLogXXX(string) safe to use (#25414).
|
|
- Make wxPlatformInfo::Get() thread-safe (#25459).
|
|
- Make wxString {To,From}CDouble() faster and more robust (#23287).
|
|
- Make wxrc-generated code faster to build (DoctorNoobingstoneIPresume, #24579).
|
|
- Multiple headers with same name in wxWebRequest (Stefan Dinkelacker, #24878).
|
|
- Operators on wx types are not defined in global scope any more (#24190).
|
|
- Optimize wxString by supporting move operations (Pavel Tyunin, #23215)
|
|
- Optimize wxString::operator<<() for numeric types (#25388).
|
|
- Preserve errno in wxString methods (Lauri Nurmi, #23113).
|
|
- Support constructing wxString from std::string_view (Ian McInerney, #23711).
|
|
- Update 3rd party libraries to latest versions (Maarten Bent, #25112, #25325).
|
|
- Update translations for Brazilian Portuguese (Felipe), Corsican (Patriccollu,
|
|
#25420), Czech (PB, #25412), French (#25400), German (tstkr),
|
|
Romanian (Cătălin Răceanu, #25403), Simplified Chinese (0tkl, #25450),
|
|
Turkish (Kerim Demirkaynak, #25267) and Ukrainian (Yuri Chornoivan, #25410).
|
|
- Update language database (Ulrich Telle, #23437).
|
|
- Use UTF-8 for environment variables (#25101).
|
|
- Use variadic templates for vararg functions (#22981).
|
|
- Use XDG-compliant location by default in wxFileConfig under Unix (#24195).
|
|
|
|
All (GUI):
|
|
|
|
- Add "feature" attribute to XRC (#23184).
|
|
- Add RTF support to wxTextCtrl (Blake-Madden, #24626).
|
|
- Add WXK_NUMPAD_CENTER (Ivan Sorokin, #23478).
|
|
- Add XRC handler for wxVListBox (Bill Su, #24361).
|
|
- Add checks for incorrect use of wxGridTable messages.
|
|
- Add high DPI support to generic wxListCtrl (Gerhard Stein, #22916).
|
|
- Add support for "id" attribute in wxHTML (Oleg Tolmatcev, #24968).
|
|
- Add support for high DPI animations (#23817).
|
|
- Add support for high DPI cursors via wxCursorBundle (#25374).
|
|
- Add support for loading wxPropertyGrid from XRC (#24274).
|
|
- Add support for printing multiple page ranges (Stefan Ziegler, #25030).
|
|
- Add wxApp::SetAppearance() to explicitly set dark or light mode (#24461).
|
|
- Add wxAuiManager::{Save,Load}Layout() (#24235).
|
|
- Add wxGrid::CopySelection() (Blake Madden, #24124).
|
|
- Add wxInfoBar::ShowCheckBox() (Blake Madden, #25394).
|
|
- Add wxRadioButton group support to wxGenericValidator (Bill Su, #24264).
|
|
- Add wxRibbonBar::GetPageById() (Blake Madden, #24211).
|
|
- Add wxStatusBar::AddFieldControl() (AliKet, #24092).
|
|
- Add wxTexTCtrl::SearchText() (Blake-Madden, #24756).
|
|
- Allow resizing row and column labels in wxGrid (Dietmar Schwertberger, #24362).
|
|
- Allow setting fonts in wxAuiTabArt to work (#24829).
|
|
- Allow specifying size of wxTextEntryDialog (Blake-Madden, #24467).
|
|
- Allow using wxVListBox wxXRC_NO_SUBCLASSING (Bill Su, #25144).
|
|
- Derive wxSearchCtrl from wxTextEntry in all ports (Martin Corino, #23686).
|
|
- Fix default background of RLE bitmaps (Brian Nixon, #23599).
|
|
- Fix handling of sizers inside <windowlabel> XRC tag.
|
|
- Fix loading some bitmaps using BI_BITFIELDS (Brian Nixon, #23601).
|
|
- Fix print preview in high DPI (taler21, #24666).
|
|
- Fix wxAUI dock art appearance after DPI change (Maarten Bent, #23420).
|
|
- Fix wxFontList::FindOrCreateFont() for non-integral sizes (PB).
|
|
- Fix wxGrid::GetDropTarget() (Dan Allen, #24448)
|
|
- Fix wxNUM_VAL_ZERO_AS_BLANK behaviour on focus loss (#24859).
|
|
- Fix wxPGVIterator used in wxPropertyGridManager (#23273).
|
|
- Fix wxTextCtrl proof checking functions return values (mcorino, #23832).
|
|
- Implement client data support in wxAuiToolBar (Miguel Gimenez, #23271).
|
|
- Improve generic and MSW "About" dialog appearance (#23196).
|
|
- Improve item sorting in generic wx{File,Dir}Ctrl (PB, #23962).
|
|
- Improve wxImage resizing quality (Alex Shvartzkop, #25252).
|
|
- Make date/time picker controls locale-aware (Ulrich Telle, #23965).
|
|
- Make wxEL_ALLOW_NEW without wxEL_ALLOW_EDIT work (Martin Corino, #24099).
|
|
- Make wxGenericValidator more flexible (Bill Su, #24134).
|
|
- Make wxGrid::ProcessTableMessage() more convenient to use (Joachim Wiesemann).
|
|
- Provide reason for wxNotificationMessage dismissal (Lauri Nurmi, #24340).
|
|
- Respect menu path style in wxFileHistory::AddFilesToMenu() (Bill Su, #25451).
|
|
- Restore non-live-resize in wxAUI and wxSplitterWindow (AliKet, #24193).
|
|
- Save/restore wxAuiNotebook layout (#24950).
|
|
- Several fixes to scrolling in wxVListBox (Bill Su, #24278).
|
|
- Support high DPI bitmaps in wxBusyInfo (#23813).
|
|
- Support specifying dark mode colours in XRC (#23571).
|
|
- Support wxCHK_UNDETERMINED in wxUpdateUIEvent (Bill Su, #24764).
|
|
- Update Scintilla to 5.0 and Lexilla to 5.3 (Maarten Bent, #23117, #24369).
|
|
- Update nanosvg to fix possible crashes (#24213).
|
|
- Use CSS colour names (#23518).
|
|
- Use new default flat tab art provider in wxAUI (#25316).
|
|
- Use thousands separators in page numbers when printing (Blake-Madden, #25320).
|
|
|
|
All (CMake):
|
|
|
|
- Add CMake presets (Tobias Taschner, #23335).
|
|
- Add option to use all built-in libraries (Maarten Bent).
|
|
- Build mfc sample too (Maarten Bent, #25402).
|
|
- Fix generated wx-config when using custom flavour (#25398).
|
|
- Fix using static runtime with msvc (Maarten Bent, #25098).
|
|
|
|
All (WebView):
|
|
|
|
- Add support for clearing browsing data (Tobias Taschner, #24431).
|
|
- Add advanced requests (Tobias Taschner, #22797).
|
|
- Add child window handling (Tobias Taschner, #23334).
|
|
- Add new wxEVT_WEBVIEW_CREATED (#706).
|
|
- Add wxWebView::EnableBrowserAcceleratorKeys() (Tobias Taschner, #23070)
|
|
- Add wxWebView::EnablePersistentStorage() (Tobias Taschner, #24405).
|
|
- Add wxWebView::GetNativeConfiguration() (Tobias Taschner, #22781).
|
|
- Add wxWebView::SetProxy() (#23854).
|
|
- Add wxWebView::ShowDevTools() (#24799).
|
|
- Add wxWebViewConfiguration (Tobias Taschner, #23374).
|
|
- Add wxWebViewEvent::IsTargetMainFrame() (Tobias Taschner, #23238).
|
|
- Allow setting wxWebViewEdge UA after creation (Tobias Taschner, #23225).
|
|
- Implement StartRequest() in wxWebViewChromium (John R. Patek, #25395).
|
|
- Queue Edge wxWebView events (Tobias Taschner, #22744, #19075).
|
|
|
|
wxGTK:
|
|
|
|
- Add support for building with libwebkit2gtk-4.1 (Scott Talbert, #23633).
|
|
- Add support for wxRB_SINGLE (Stefan Hansson, #23652).
|
|
- Add wxTextCtrl::GTKSetPangoMarkup() (Blake-Madden, #24912)
|
|
- Add wxWindow::GTKGetWin32Handle() (Ryan Ogurek, #24675).
|
|
- Don't require libsecret-1.so presence at run-time (#25355).
|
|
- Fix handling of binary secrets in wxSecretStore (Martin Corino, #24352).
|
|
- Fix handling total window size with GNOME with X11 (#25348).
|
|
- Fix height of read-only wxBitmapComboBox (#25468).
|
|
- Fix missing enter/leave window events (#24339).
|
|
- Fix wxGLCanvas scale when using EGL/Wayland in high DPI (Popax21, #23733).
|
|
- Fix using wrong colour in wxPrinterDC (#24729).
|
|
- Fix wxKeyEvent::GetKeyCode() in non-US layouts (Ivan Sorokin, #23379).
|
|
- Implement generation of wxDPIChangedEvent (#19290, #24040).
|
|
- Implement max length limit for multiline wxTextCtrl (Igor Korot, #24751).
|
|
- Implement wxTextCtrl::SearchText() (Blake-Madden, #24897).
|
|
- Improve wxInfoBar appearance when text doesn't fit (#24695).
|
|
- Improve wxSlider min/max labels positioning (#24106).
|
|
- Limit radius in wxDC::DrawRoundedRectangle() (Alex Shvartzkop, #24327).
|
|
- Multiple fixes to mouse event generation (#24931, #24932, #24933).
|
|
|
|
wxMSW:
|
|
|
|
- Add support for extended-length paths (#25033).
|
|
- Add support for markup to wxStaticText (#25000).
|
|
- Allow changing wxHyperLink colour (#23549).
|
|
- Allow using static CRT in MSBuild projects (David Connet).
|
|
- Change default wxTreeCtrl to use more modern look (PB, #23844).
|
|
- Don't append unwanted extension in wxFileDialg (Martin Corino, #24949).
|
|
- Enable double buffering for all windows (#22851).
|
|
- Fix AUI tab close button size on DPI change (Kumazuma, #23400).
|
|
- Fix background of wxCollapsiblePane inside wxNotebook (#23274).
|
|
- Fix background of wxStaticText in wxAuiToolbar (#24765).
|
|
- Fix build issues with llvm clang (Sergey Khalyutn, Maarten Bent, #23468).
|
|
- Fix loading message catalogs with "@" in their names (Mike Wang).
|
|
- Fix missing closing line in wxGDIPlusContext::DrawLines() (#24645).
|
|
- Fix multiple problems in UTF-8 build (#23313).
|
|
- Fix not showing help text for submenus (David Langhals, #24724).
|
|
- Fix resizing of TLWs with single child on DPI change (#22983)
|
|
- Fix saving geometry of Aero-snapped windows (Randalphwa).
|
|
- Fix security issue when running on secure desktop (Sean Budd).
|
|
- Fix using strings with Unicode characters outside of BMP (#25128).
|
|
- Fix wxDisplay invalidation on connected display change (Marcel Pham, #25396).
|
|
- Fix wxOverlay and wxScrolled auto-scrolling in RTL layout (AliKet, #25413).
|
|
- Fix wxPropertyGrid expander buttons appearance in high DPI (#24304).
|
|
- Implement support for wxBG_STYLE_TRANSPARENT (Maarten Bent, #23412).
|
|
- Implement RTL support in wxGraphicsContext with GDI+ (AliKet, #25431).
|
|
- Improve wxGetUserName() implementation (Blake-Madden, #24242).
|
|
- Increase wxButton default size in high DPI (#25297).
|
|
- Link with gdiplus.lib and msimg32.lib directly (Maarten Bent, #24614).
|
|
- Reimplement wxOverlay using layered windows (AliKet, #23261).
|
|
- Return bool from wxBitmap::UseAlpha() (PB, #23919).
|
|
- Support printing current or selected pages (Stefan Ziegler, #23372).
|
|
- Turn wxCAPTION on automatically if required by other styles (#23575).
|
|
- wxNotebook::HitTest() for tabs on the right/left (Gerhard Gruber, #23023)
|
|
- wxMessageOutputBest uses associated console, if any (#25068).
|
|
|
|
wxOSX:
|
|
|
|
- Add loading wxCursor from resources (oneeyeman1, Maarten Bent, #24374)
|
|
- Add missing const wxFontDialog::GetFontData() (Martin Corino, #23691).
|
|
- Do not activate "Close" button on Cmd-C (nobugshere, #25346).
|
|
- Ensure that wxEventLoop::OnExit() is called (#25409).
|
|
- Fix setting cursor for TLWs (unawarez, #25131).
|
|
- Make wxUIActionSimulator actually work (Martin Corino, #23692).
|
|
|
|
wxQt:
|
|
|
|
- Fix clipping in wxDC to work as expected (AliKet, #23600).
|
|
- Fix wxButton::GetLabel() (AliKet, #22929).
|
|
- Fix wxEVT_TEXT_ENTER processing (AliKet, #22942).
|
|
- Fix wxFrame::ClientToScreen() (AliKet, #22969).
|
|
- Fix wxPopupWindow implementation under wxQt (AliKet, #23904).
|
|
- Fix wxRadioButton selection (AliKet, #22991).
|
|
- Fixes for Qt 6.8.2 (AliKet, #25207).
|
|
- Fixes for wxSlider ticks and events (AliKet, #22989).
|
|
- Implement clipboard and undo support in wxTextCtrl (AliKet, #22973).
|
|
- Implement more wxTextCtrl methods (AliKet, #23984).
|
|
- Implement wxRadio{Box,Button}::{Set,Get}Label() (Alex Shvartzkop, #24309).
|
|
- Implement wxTextCtrl::SearchText() (AliKet, #24899).
|
|
- Make wxGLCanvas work (Alex Shvartzkop, #24200).
|
|
- Make wxPen and wxBrush behaviour more consistent with the other ports (AliKet, #23863).
|
|
- Make wxTopLevelWindow::SetSizeHints() works (AliKet, #23917).
|
|
- Many improvements in wxListCtrl (AliKet, #23029).
|
|
- Many improvements to wxDC (Alex Shvartzkop, #24328).
|
|
- Many improvements to wxListBox (AliKet, #23063).
|
|
- Provide native wxOverlay implementation (AliKet, #24080).
|
|
- Provide native wx{Date,Time}Ctrl (AliKet, #23925).
|
|
- Provide wxRendererNative implementation (AliKet, #24223).
|
|
- Refresh children too in wxWindow::Refresh() (AliKet, #22918).
|
|
- Several fixes and improvements (AliKet, #22932).
|
|
- Support accelerators and radio items in wxMenu (AliKet, #22985).
|
|
- Support extended message and custom labels in wxMessageDialog (#24299).
|
|
- Support images and tab orientation in wxNotebook (AliKet, #22997).
|
|
- Use premultiplied ARGB32 format for wxBitmap (AliKet, #23872).
|