wxwidgets/docs/changes.txt
Vadim Zeitlin e89f05faba Remove memory debugging/tracing support and all related options
Drop disabled by default and pretty useless memory tracing code and all
the overlapping and poorly documented build options related to it.

Remove memory.cpp entirely and update all the make/project files, but
preserve the now completely trivial wx/memory.h for compatibility and
also keep including wx/string.h from wx/object.h as it seems like a lot
of existing code actually depends on this, even if it should not.

Replace the options in the propgrid sample with a couple of other
debug-related options that were not used before to avoid leaving the
"Debugging Section" completely empty.
2023-01-05 21:41:38 +01:00

127 lines
5.8 KiB
Text

-------------------------------------------------------------------------------
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 now uses double buffering by default, meaning that updating the
windows using wxClientDC doesn't work any longer, which is consistent with
the behaviour of wxGTK with Wayland backend and of wxOSX, but not with the
traditional historic behaviour of wxMSW (or wxGTK/X11). You may call
MSWDisableComposited() to restore the previous behaviour, however it is
strongly recommended to change your redrawing logic to avoid using wxClientDC
instead, as the code using it still won't work with wxGTK/wxOSX.
You may also choose to globally set the new msw.window.no-composited system
option to disable the use of double buffering, but please consider doing it
only as a last resort and/or temporary solution, as this _will_ result in
flicker and won't be supported at all in the future wxWidgets versions.
- wxMSW doesn't support versions of Microsoft Windows before Windows 7. If you
need Windows XP or Vista support, please use wxWidgets 3.2.
- 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.
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.
- wxMotif and wxGTK1 ports have been removed, please use wxWidgets 3.2 if you
still need them.
- 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.
- 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.
3.3.0: (released 2022-??-??)
----------------------------
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.2.0..|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.