diff --git a/.github/workflows/make_release.yml b/.github/workflows/make_release.yml
index d4d7f06030..25ad3d7913 100644
--- a/.github/workflows/make_release.yml
+++ b/.github/workflows/make_release.yml
@@ -35,7 +35,7 @@ jobs:
- name: Create Archives Checksums
working-directory: distrib/release/${{ inputs.version }}
run: |
- printf '\n# THESE CHECKSUMS MUST BE MOVED ABOVE!\n\n````' >> ../../../docs/release.md
+ printf '\n# THESE CHECKSUMS MUST BE MOVED ABOVE!\n\n````\n' >> ../../../docs/release.md
sha1sum * | tee -a ../../../docs/release.md
- name: Create Draft Release
@@ -85,6 +85,7 @@ jobs:
- name: Install Prerequisites
run: |
choco install -y --no-progress graphviz html-help-workshop
+ choco install -y doxygen.install --version=1.9.1
- name: Create MSW Installer and Help File
shell: cmd
@@ -92,7 +93,7 @@ jobs:
md distrib\release
md distrib\release\${{ inputs.version }}
move wxWidgets-${{ inputs.version }}.zip distrib\release\${{ inputs.version }}
- set "PATH=C:\Program Files (x86)\HTML Help Workshop;%PATH%"
+ set "PATH=C:\Program Files\doxygen\bin;C:\Program Files (x86)\HTML Help Workshop;%PATH%"
build\tools\release.bat ${{ inputs.version }}
# This doesn't really decrease the file size but .chm files can't be
diff --git a/Makefile.in b/Makefile.in
index 4897db3c95..b3f3df91b2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -82,7 +82,7 @@ wxCFLAGS_C99 = @wxCFLAGS_C99@
DESTDIR =
WX_RELEASE = 3.2
WX_RELEASE_NODOT = 32
-WX_VERSION = $(WX_RELEASE).2
+WX_VERSION = $(WX_RELEASE).4
LIBDIRNAME = $(wx_top_builddir)/lib
WXREGEX_CFLAGS = $(WX_CPPFLAGS) -DNDEBUG \
-I$(wx_top_builddir)/3rdparty/pcre/src -D__WX__ -DHAVE_CONFIG_H \
@@ -2215,7 +2215,7 @@ LOCALE_LINGUAS = ca cs da de el es fi fr hu id it ja nl pl ru sl sv tr uk zh zh_
@COND_DEPS_TRACKING_1@CXXC = $(BK_DEPS) $(CXX)
@COND_USE_PLUGINS_0@PLUGIN_ADV_EXTRALIBS = $(EXTRALIBS_SDL)
@COND_PLATFORM_MACOSX_1@WXMACVERSION_CMD = \
-@COND_PLATFORM_MACOSX_1@ -compatibility_version 3.0 -current_version 3.1
+@COND_PLATFORM_MACOSX_1@ -compatibility_version 3.0 -current_version 3.2
@COND_USE_GUI_0@PORTNAME = base
@COND_USE_GUI_1@PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
@COND_TOOLKIT_MAC@WXBASEPORT = _carbon
@@ -13976,9 +13976,9 @@ COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_HTML_1___htmldll_library_link_LIBR_0 \
@COND_USE_SOVERSION_0@dll___targetsuf2 = .$(SO_SUFFIX)
@COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@dll___targetsuf3 \
@COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@ = \
-@COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@ .$(SO_SUFFIX).0.2.1
+@COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@ .$(SO_SUFFIX).0.2.2
@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@dll___targetsuf3 \
-@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@ = .0.2.1.$(SO_SUFFIX)
+@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@ = .0.2.2.$(SO_SUFFIX)
@COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1@dll___targetsuf3 = -0.$(SO_SUFFIX)
@COND_USE_SOVERSION_0@dll___targetsuf3 = .$(SO_SUFFIX)
@COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1@dll___targetsuf3 = .$(SO_SUFFIX).0
@@ -38172,7 +38172,7 @@ distdir: @GUIDIST@
@# in other dist targets.
find $(DISTDIR) \( -name "CVS" -o -name ".cvsignore" -o -name "*.dsp" -o -name "*.dsw" -o -name "*.hh*" -o \
\( -name "makefile.*" -a ! -name "makefile.gcc" -a ! -name "makefile.unx" \) \) \
- -print | egrep -v '/samples/.*\.hh.$$' | xargs rm -rf
+ -print | grep -vE '/samples/.*\.hh.$$' | xargs rm -rf
dist: distdir
@cd _dist_dir && tar ch $(DISTDIRNAME) | gzip -f9 > ../$(WXARCHIVE);
diff --git a/build/bakefiles/version.bkl b/build/bakefiles/version.bkl
index 24706142ff..727b7baa5e 100644
--- a/build/bakefiles/version.bkl
+++ b/build/bakefiles/version.bkl
@@ -23,7 +23,7 @@
changes, change C:R:A to C:R+1:A
-->
2
- 1
+ 2
2
diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake
index c7b86b0b4c..c68a1aa494 100644
--- a/build/cmake/config.cmake
+++ b/build/cmake/config.cmake
@@ -40,6 +40,26 @@ macro(wx_get_dependencies var lib)
else()
get_target_property(dep_name ${dep} OUTPUT_NAME)
endif()
+
+ # imported target
+ if(CMAKE_VERSION VERSION_GREATER "3.18")
+ # CMake <= 3.18 only allows a few properties to be checked, not LOCATION, see
+ # https://cmake.org/cmake/help/v3.18/manual/cmake-buildsystem.7.html#interface-libraries
+ set(prop_suffix)
+ if (CMAKE_BUILD_TYPE)
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" prop_suffix)
+ set(prop_suffix "_${prop_suffix}")
+ endif()
+ if(NOT dep_name AND prop_suffix)
+ get_target_property(dep_name ${dep} LOCATION${prop_suffix})
+ endif()
+ if(NOT dep_name)
+ get_target_property(dep_name ${dep} LOCATION)
+ endif()
+ endif()
+ if(NOT dep_name)
+ get_target_property(dep_name ${dep} IMPORTED_LIBNAME)
+ endif()
else()
# For the value like $<$:LIB_PATH>
# Or $<$>:LIB_PATH>
@@ -93,9 +113,6 @@ function(wx_write_config)
set(libdir "\${exec_prefix}/lib")
set(bindir "\${exec_prefix}/bin")
- find_program(EGREP egrep)
- mark_as_advanced(EGREP)
-
if(wxBUILD_MONOLITHIC)
set(MONOLITHIC 1)
else()
@@ -145,7 +162,7 @@ function(wx_write_config)
set(WX_RELEASE ${wxMAJOR_VERSION}.${wxMINOR_VERSION})
set(WX_VERSION ${wxVERSION})
- set(WX_SUBVERSION ${wxVERSION}.1)
+ set(WX_SUBVERSION ${wxVERSION}.0)
set(WX_FLAVOUR)
set(TOOLKIT_DIR ${wxBUILD_TOOLKIT})
set(TOOLKIT_VERSION)
@@ -183,6 +200,9 @@ function(wx_write_config)
foreach(flag IN LISTS wxTOOLKIT_DEFINITIONS)
wx_string_append(WXCONFIG_CPPFLAGS " -D${flag}")
endforeach()
+ if(wxBUILD_LARGEFILE_SUPPORT)
+ wx_string_append(WXCONFIG_CPPFLAGS " -D_FILE_OFFSET_BITS=64")
+ endif()
string(STRIP "${WXCONFIG_CPPFLAGS}" WXCONFIG_CPPFLAGS)
set(WXCONFIG_CXXFLAGS ${WXCONFIG_CFLAGS})
set(WXCONFIG_LDFLAGS_GUI)
diff --git a/configure b/configure
index d8a578f561..5d5e669e15 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for wxWidgets 3.2.2.1.
+# Generated by GNU Autoconf 2.69 for wxWidgets 3.2.4.
#
# Report bugs to .
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='wxWidgets'
PACKAGE_TARNAME='wxwidgets'
-PACKAGE_VERSION='3.2.2.1'
-PACKAGE_STRING='wxWidgets 3.2.2.1'
+PACKAGE_VERSION='3.2.4'
+PACKAGE_STRING='wxWidgets 3.2.4'
PACKAGE_BUGREPORT='wx-dev@googlegroups.com'
PACKAGE_URL=''
@@ -955,6 +955,8 @@ GSPELL_LIBS
GSPELL_CFLAGS
LIBSECRET_LIBS
LIBSECRET_CFLAGS
+XKBCOMMON_LIBS
+XKBCOMMON_CFLAGS
GXX_VERSION
LIBICONV
CXXFLAGS_VISIBILITY
@@ -1436,6 +1438,8 @@ WAYLAND_EGL_CFLAGS
WAYLAND_EGL_LIBS
MesaGL_CFLAGS
MesaGL_LIBS
+XKBCOMMON_CFLAGS
+XKBCOMMON_LIBS
LIBSECRET_CFLAGS
LIBSECRET_LIBS
GSPELL_CFLAGS
@@ -2008,7 +2012,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures wxWidgets 3.2.2.1 to adapt to many kinds of systems.
+\`configure' configures wxWidgets 3.2.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2078,7 +2082,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of wxWidgets 3.2.2.1:";;
+ short | recursive ) echo "Configuration of wxWidgets 3.2.4:";;
esac
cat <<\_ACEOF
@@ -2331,7 +2335,7 @@ Optional Features:
--enable-metafile use wxMetaFile
--enable-dragimage use wxDragImage
--enable-accessibility enable accessibility support
- --enable-uiactionsim use wxUIActionSimulator (experimental)
+ --enable-uiactionsim use wxUIActionSimulator
--enable-dctransform use wxDC::SetTransformMatrix and related
--enable-webviewwebkit use wxWebView WebKit backend
--disable-glcanvasegl disable wxGLCanvas EGL backend
@@ -2478,6 +2482,10 @@ Some influential environment variables:
MesaGL_CFLAGS
C compiler flags for MesaGL, overriding pkg-config
MesaGL_LIBS linker flags for MesaGL, overriding pkg-config
+ XKBCOMMON_CFLAGS
+ C compiler flags for XKBCOMMON, overriding pkg-config
+ XKBCOMMON_LIBS
+ linker flags for XKBCOMMON, overriding pkg-config
LIBSECRET_CFLAGS
C compiler flags for LIBSECRET, overriding pkg-config
LIBSECRET_LIBS
@@ -2580,7 +2588,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-wxWidgets configure 3.2.2.1
+wxWidgets configure 3.2.4
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3397,7 +3405,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by wxWidgets $as_me 3.2.2.1, which was
+It was created by wxWidgets $as_me 3.2.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3860,8 +3868,8 @@ fi
wx_major_version_number=3
wx_minor_version_number=2
-wx_release_number=2
-wx_subrelease_number=1
+wx_release_number=4
+wx_subrelease_number=0
WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
WX_VERSION=$WX_RELEASE.$wx_release_number
@@ -37171,7 +37179,7 @@ else
x86_64-*-mingw* )
;;
*-*-mingw32* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports -mthreads" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports -mthreads" >&5
$as_echo_n "checking if compiler supports -mthreads... " >&6; }
if ${wx_cv_cflags_mthread+:} false; then :
$as_echo_n "(cached) " >&6
@@ -37186,6 +37194,10 @@ int
main ()
{
+#ifdef __clang__
+#error no
+#endif
+
;
return 0;
}
@@ -38039,6 +38051,94 @@ $as_echo "$as_me: WARNING: wxFileSystemWatcher won't be available on this platfo
fi
fi
+if test "$wxUSE_GTK" = 1; then
+ if test "$USE_WIN32" != 1 -a "$USE_DARWIN" != 1; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XKBCOMMON" >&5
+$as_echo_n "checking for XKBCOMMON... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$XKBCOMMON_CFLAGS"; then
+ pkg_cv_XKBCOMMON_CFLAGS="$XKBCOMMON_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xkbcommon\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "xkbcommon") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_XKBCOMMON_CFLAGS=`$PKG_CONFIG --cflags "xkbcommon" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$XKBCOMMON_LIBS"; then
+ pkg_cv_XKBCOMMON_LIBS="$XKBCOMMON_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xkbcommon\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "xkbcommon") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_XKBCOMMON_LIBS=`$PKG_CONFIG --libs "xkbcommon" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ XKBCOMMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xkbcommon"`
+ else
+ XKBCOMMON_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xkbcommon"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$XKBCOMMON_PKG_ERRORS" >&5
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libxkbcommon not found, key codes in key events may be incorrect" >&5
+$as_echo "$as_me: WARNING: libxkbcommon not found, key codes in key events may be incorrect" >&2;}
+
+
+elif test $pkg_failed = untried; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libxkbcommon not found, key codes in key events may be incorrect" >&5
+$as_echo "$as_me: WARNING: libxkbcommon not found, key codes in key events may be incorrect" >&2;}
+
+
+else
+ XKBCOMMON_CFLAGS=$pkg_cv_XKBCOMMON_CFLAGS
+ XKBCOMMON_LIBS=$pkg_cv_XKBCOMMON_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+ CFLAGS="$XKBCOMMON_CFLAGS $CFLAGS"
+ CXXFLAGS="$XKBCOMMON_CFLAGS $CXXFLAGS"
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY $XKBCOMMON_LIBS"
+ $as_echo "#define HAVE_XKBCOMMON 1" >>confdefs.h
+
+
+fi
+ fi
+fi
+
if test "$wxUSE_SECRETSTORE" = "yes"; then
if test "$WXGTK1" = "1"; then
@@ -41732,6 +41832,86 @@ pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT" >&5
$as_echo_n "checking for WEBKIT... " >&6; }
+if test -n "$PKG_CONFIG"; then
+ if test -n "$WEBKIT_CFLAGS"; then
+ pkg_cv_WEBKIT_CFLAGS="$WEBKIT_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.1") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_WEBKIT_CFLAGS=`$PKG_CONFIG --cflags "webkit2gtk-4.1" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$WEBKIT_LIBS"; then
+ pkg_cv_WEBKIT_LIBS="$WEBKIT_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.1") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_WEBKIT_LIBS=`$PKG_CONFIG --libs "webkit2gtk-4.1" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ WEBKIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "webkit2gtk-4.1"`
+ else
+ WEBKIT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "webkit2gtk-4.1"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$WEBKIT_PKG_ERRORS" >&5
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&5
+$as_echo "$as_me: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&2;}
+
+elif test $pkg_failed = untried; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&5
+$as_echo "$as_me: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&2;}
+
+else
+ WEBKIT_CFLAGS=$pkg_cv_WEBKIT_CFLAGS
+ WEBKIT_LIBS=$pkg_cv_WEBKIT_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+ USE_WEBVIEW_WEBKIT2=1
+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
+
+fi
+ if test "$USE_WEBVIEW_WEBKIT2" = 0; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT" >&5
+$as_echo_n "checking for WEBKIT... " >&6; }
+
if test -n "$PKG_CONFIG"; then
if test -n "$WEBKIT_CFLAGS"; then
pkg_cv_WEBKIT_CFLAGS="$WEBKIT_CFLAGS"
@@ -41787,13 +41967,13 @@ fi
echo "$WEBKIT_PKG_ERRORS" >&5
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk not found, falling back to webkitgtk" >&5
-$as_echo "$as_me: WARNING: webkit2gtk not found, falling back to webkitgtk" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&5
+$as_echo "$as_me: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&2;}
elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk not found, falling back to webkitgtk" >&5
-$as_echo "$as_me: WARNING: webkit2gtk not found, falling back to webkitgtk" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&5
+$as_echo "$as_me: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&2;}
else
WEBKIT_CFLAGS=$pkg_cv_WEBKIT_CFLAGS
@@ -41801,11 +41981,12 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- USE_WEBVIEW_WEBKIT2=1
- CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
- EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
+ USE_WEBVIEW_WEBKIT2=1
+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
fi
+ fi
fi
if test "$USE_WEBVIEW_WEBKIT2" = 0; then
webkitgtk=webkit-1.0
@@ -43768,7 +43949,7 @@ if ${bakefile_cv_prog_makeisgnu+:} false; then :
else
if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
- egrep -s GNU > /dev/null); then
+ grep -sE GNU > /dev/null); then
bakefile_cv_prog_makeisgnu="yes"
else
bakefile_cv_prog_makeisgnu="no"
@@ -45517,7 +45698,11 @@ dedup_flags()
{
printf "%s " "$@" |
awk 'BEGIN { RS=" "; ORS=" " }
- { if ($0=="-arch" || $0=="-framework" || !seen[$0]++) print }'
+ {
+ if ($0=="") next
+ if ($0=="-arch" || $0=="-framework") { x=$0; next }
+ if (x!="") x=x " " $0; else x=$0; if (!seen[x]++) print x; x=""
+ }'
}
WX_CPPFLAGS=`dedup_flags "$CPPFLAGS"`
@@ -46428,7 +46613,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by wxWidgets $as_me 3.2.2.1, which was
+This file was extended by wxWidgets $as_me 3.2.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -46494,7 +46679,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-wxWidgets config.status 3.2.2.1
+wxWidgets config.status 3.2.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.in b/configure.in
index 4713d51ae1..7ba24bd708 100644
--- a/configure.in
+++ b/configure.in
@@ -14,7 +14,7 @@ dnl ---------------------------------------------------------------------------
dnl initialization
dnl ---------------------------------------------------------------------------
-AC_INIT([wxWidgets], [3.2.2.1], [wx-dev@googlegroups.com])
+AC_INIT([wxWidgets], [3.2.4], [wx-dev@googlegroups.com])
dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
AC_CONFIG_SRCDIR([wx-config.in])
@@ -40,8 +40,8 @@ dnl wx_release_number += 1
wx_major_version_number=3
wx_minor_version_number=2
-wx_release_number=2
-wx_subrelease_number=1
+wx_release_number=4
+wx_subrelease_number=0
WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
WX_VERSION=$WX_RELEASE.$wx_release_number
@@ -1038,7 +1038,7 @@ WX_ARG_FEATURE(joystick, [ --enable-joystick use wxJoystick], wxUSE_JO
WX_ARG_FEATURE(metafile, [ --enable-metafile use wxMetaFile], wxUSE_METAFILE)
WX_ARG_FEATURE(dragimage, [ --enable-dragimage use wxDragImage], wxUSE_DRAGIMAGE)
WX_ARG_FEATURE(accessibility,[ --enable-accessibility enable accessibility support], wxUSE_ACCESSIBILITY)
-WX_ARG_FEATURE(uiactionsim, [ --enable-uiactionsim use wxUIActionSimulator (experimental)], wxUSE_UIACTIONSIMULATOR)
+WX_ARG_FEATURE(uiactionsim, [ --enable-uiactionsim use wxUIActionSimulator], wxUSE_UIACTIONSIMULATOR)
WX_ARG_FEATURE(dctransform, [ --enable-dctransform use wxDC::SetTransformMatrix and related], wxUSE_DC_TRANSFORM_MATRIX)
WX_ARG_FEATURE(webviewwebkit,[ --enable-webviewwebkit use wxWebView WebKit backend], wxUSE_WEBVIEW_WEBKIT)
WX_ARG_FEATURE(glcanvasegl, [ --disable-glcanvasegl disable wxGLCanvas EGL backend], wxUSE_GLCANVAS_EGL)
@@ -5251,13 +5251,20 @@ else
x86_64-*-mingw* )
;;
*-*-mingw32* )
- dnl check if the compiler accepts -mthreads
+ dnl check if the compiler is gcc and accepts -mthreads (clang just
+ dnl ignores this option but it doesn't need it, so explicitly fail
+ dnl the test for it)
AC_CACHE_CHECK([if compiler supports -mthreads],
wx_cv_cflags_mthread,
[
CFLAGS_OLD="$CFLAGS"
CFLAGS="-mthreads $CFLAGS"
- AC_TRY_COMPILE([], [],
+ AC_TRY_COMPILE([],
+ [
+#ifdef __clang__
+#error no
+#endif
+ ],
wx_cv_cflags_mthread=yes,
wx_cv_cflags_mthread=no
)
@@ -5681,6 +5688,25 @@ if test "$wxUSE_FSWATCHER" = "yes"; then
fi
fi
+dnl ---------------------------------------------------------------------------
+dnl xkbcommon library for key code translations in wxGTK
+dnl ---------------------------------------------------------------------------
+if test "$wxUSE_GTK" = 1; then
+ if test "$USE_WIN32" != 1 -a "$USE_DARWIN" != 1; then
+ PKG_CHECK_MODULES(XKBCOMMON, [xkbcommon],
+ [
+ CFLAGS="$XKBCOMMON_CFLAGS $CFLAGS"
+ CXXFLAGS="$XKBCOMMON_CFLAGS $CXXFLAGS"
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY $XKBCOMMON_LIBS"
+ AC_DEFINE(HAVE_XKBCOMMON)
+ ],
+ [
+ AC_MSG_WARN([libxkbcommon not found, key codes in key events may be incorrect])
+ ]
+ )
+ fi
+fi
+
dnl ---------------------------------------------------------------------------
dnl Secret storage
dnl ---------------------------------------------------------------------------
@@ -7503,15 +7529,27 @@ if test "$wxUSE_WEBVIEW" = "yes"; then
if test "$wxUSE_GTK" = 1; then
if test "$WXGTK3" = 1; then
PKG_CHECK_MODULES([WEBKIT],
- [webkit2gtk-4.0],
+ [webkit2gtk-4.1],
[
USE_WEBVIEW_WEBKIT2=1
CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
],
[
- AC_MSG_WARN([webkit2gtk not found, falling back to webkitgtk])
+ AC_MSG_WARN([webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0])
])
+ if test "$USE_WEBVIEW_WEBKIT2" = 0; then
+ PKG_CHECK_MODULES([WEBKIT],
+ [webkit2gtk-4.0],
+ [
+ USE_WEBVIEW_WEBKIT2=1
+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
+ ],
+ [
+ AC_MSG_WARN([webkit2gtk-4.0 not found, falling back to webkitgtk])
+ ])
+ fi
fi
if test "$USE_WEBVIEW_WEBKIT2" = 0; then
webkitgtk=webkit-1.0
@@ -8560,14 +8598,16 @@ dnl Set the flags to be used for the library build itself using the flag names
dnl used everywhere above.
dnl
dnl Also get rid of duplicates in the flags, which results in dramatically
-dnl shorter build logs and so is well worth it (but preserve some special
-dnl flags which are explicitly allowed to occur multiple times, as all their
-dnl occurrences must be preserved).
+dnl shorter build logs and so is well worth it.
dedup_flags()
{
printf "%s " "$@" |
awk 'BEGIN { RS=" "; ORS=" " }
- { if ($0=="-arch" || $0=="-framework" || !seen[[$0]]++) print }'
+ {
+ if ($0=="") next
+ if ($0=="-arch" || $0=="-framework") { x=$0; next }
+ if (x!="") x=x " " $0; else x=$0; if (!seen[[x]]++) print x; x=""
+ }'
}
WX_CPPFLAGS=`dedup_flags "$CPPFLAGS"`
diff --git a/docs/changes.txt b/docs/changes.txt
index a5fbefa195..43fb941e92 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -232,6 +232,160 @@ Changes in behaviour which may result in build errors
minimum required version is now 2005.
+3.2.4: (released 2024-11-11)
+----------------------------
+
+All:
+
+- Allow creating wxArrays from std::initializer_list (Lotendan, #23966).
+- Fix regression in wxTranslations::AddCatalog() return value (#24019).
+
+All (GUI):
+
+- Fix possible crash when dragging pages in wxAuiNotebook (#24027).
+- Fix refreshing multiple selection items in generic wxListCtrl.
+
+wxGTK:
+
+- Fix some regressions introduced in 3.2.3:
+ * Don't crash in console apps linked with GUI libraries (#23981).
+ * Fix possible crash and too high CPU use when using EGL (#24018).
+ * Fix losing clipboard contents when clearing a different selection (#23988).
+
+wxMSW:
+
+- Fix MSVS warning about redundant "const" in wx/itemid.h (#23590).
+- Fix spurious memory leak reports when using static CRT.
+
+wxOSX:
+
+- Fix showing windows for background apps under macOS Sonoma (#23893).
+
+
+3.2.3: (released 2023-10-10)
+----------------------------
+
+All:
+
+- Fix wxTranslations::AddStdCatalog() and add AddAvailableCatalog() (#18227).
+- Add move ctor and assignment operator to wxString (Pavel Tyunin, #23224).
+- Enable large file support in Unix CMake builds (Maarten Bent, #22750).
+- Make wxSocket::Peek() work with UDP too (Brian Nixon, #23594, #23604).
+- Update Georgian translations (NorwayFun, #22673).
+- Don't use invalid iterator in wxString in UTF-8 build (Ian Day, #23305).
+- Fix wrong description for some languages (Ulrich Telle, #23419).
+- Fix infinite loop in wxFTP::GetFilesList() (#23519).
+- Fix memory leak when using wx from non-wx threads (Antti Nietosvaara, #23535).
+- Use grep instead of fgrep and egrep in makefiles/scripts (#23537).
+- Use /etc/os-release if lsb_release isn't available (Scott Talbert, #23712).
+- Add wxUILocale::GetMonthName() and GetWeekDayName() (Ulrich Telle, #23556).
+- Support WAV files with LIST chunks under Unix (A. Jiang, #23859).
+- Fix CMake build if wxWidgets directory contained "++" (Maarten Bent, #22738).
+
+All (GUI):
+
+- Don't allow pasting characters forbidden by wxTextValidator (#10281).
+- Fix wxFLEX_GROWMODE_ALL in wxFlexGridSizer with proportions (#23253).
+- Make wxListCtrl checkboxes behaviour more consistent (Maarten Bent, #23869).
+- Fix wxEditorDialogProperty in wxPropertyGrid (#23272).
+- Fix entering dates in wxGenericDatePicker in nb_NO and other locales
+ using names for the months in short date format (#23310).
+- Fix wx-config output when using NanoSVG library (#23373).
+- Fix bug modifying shared images in wxImage::Clear() (#23555).
+- Add EVT_FULLSCREEN event macro (Christian Beier, #23566).
+- Clear old attributes when changing wxGrid table (Brian Nixon, #23607).
+- Fix background colour of wxVListBox (Maarten Bent, #23641).
+- Fix return value of wxAuiToolBarItem::GetDisabledBitmap() (taler21, #23666).
+- Fix buffer overflow in wxHTMLDataObject::GetDataHere() (mcorino, #23660).
+- Fix crash when loading some mal-formed GIFs (PB, #23409).
+- Relax checks on character entry in numeric validators (#12968, #23561).
+- Fix wxRibbonToolBar::GetToolByPos() and DeleteToolByPos() (mcorino, #23457).
+- Update wxOwnerDrawnComboBox best size when adding items (Reza Karimi, #23681).
+- Keep wxProgressDialog size when updating the message (Oleg Samarin, #23727).
+- Fix crash when deleting selected item in wxGenericListCtrl (#23729).
+- Use DIPs for toolbar image sizes in wxPropertyGrid.
+- Fix undefined behaviour in wxImage::Paste() (aurel32, #23791).
+- Fix EVT_PRESS_AND_TAP() event macro definition (Kumazuma, #23819).
+- Fix wxFileHistory formatting after calling Load() (Hartwig Wiesmann, #23799).
+- Fix wxRichTextCtrl layout in high DPI (mbc-one, Maarten Bent, #23828).
+- Ensure current cell stays valid when wxGrid table changes (CookieLau, #23751).
+- Always give focus to the currently shown wxSimplebook page (#23914).
+
+wxGTK:
+
+- Fix key codes with Shift on non-US keyboards (Ivan Sorokin, #17643, #23379).
+- Fix possible crash when using IME under Wayland (#23760).
+- Avoid catastrophic slowdown when hiding wxGLCanvas under Wayland (#23512).
+- Give better error if EGL version is < 1.5 (Fabrice de Gans, #22325, #23855).
+- Fix hiding wxGLCanvas under Wayland (Joan Bruguera, #22580).
+- Fix page origin when printing in landscape (Alex Shvartzkop, #23860).
+- Fix wxComboCtrl popup behaviour under Wayland (Alex Shvartzkop, #23908).
+- Dramatically optimize adding many items to wxChoice (Ian McInerney, #23443).
+- Improve and document wxGLCanvas::CreateSurface() (Dan Gudmundsson, #23366).
+- Fix loading WebKit2 extension when using wxWebView (Scott Talbert, #23497).
+- Fix editing cells without values in wxDataViewCtrl (#23523).
+- Fix showing popup menu with GTK/Wayland without active event (#23892).
+- Fix uninitialized wxKeyEvent::m_isRepeat (jolz, #23593).
+- Improve best size computation of wxTextCtrl (Alex Shvartzkop, #23610).
+- Fix missing borders for scrollable windows, e.g. wxListCtrl (#23236).
+- Fix TAB navigation in wxPropertyGrid (Adrian Lopez, #23354).
+- Fix GSource leak when using wxIdleEvent::RequestMore() (#23364).
+- Allow using libwebkit2gtk-4.1 and libsoup-3.0 (Scott Talbert, #23630).
+- Support Numpad Enter for ending wxListCtrl editing (Scott Talbert, #23762).
+- Improve dark mode detection (Colin Kinloch and Paul Cornett, #23764).
+- Fix wxPreferencesEditor size under Wayland (#23924).
+- Fix not showing text in wxBusyInfo (#23936).
+- Make wxRB_SINGLE really work (Stefan Hansson, #23652).
+- Fix (not) refreshing virtual wxListCtrl after deleting its last item.
+
+wxMSW:
+
+- Fix (deprecated) build without Unicode support broken in 3.2.2 (#23516).
+- Fix crash when using wxBitmapDataObject in wxDataObjectComposite (#23564).
+- Fix setting locale for wxLANGUAGE_UKRAINIAN (Ulrich Telle, #23210).
+- Fix matching wildcards ending with "*.*" in wxDir (#23905).
+- Don't reset custom wxToolBar background on system colour change (#23386).
+- Fix wxUILocale::GetPreferredUILanguages() with OS < 10 (Brian Nixon, #23416).
+- Fix building with LLVM clang (Sergey Khalyutn, Maarten Bent, #23464).
+- Fix discrepancy between GDI and Direct2D in high DPI (Kumazuma, #23486).
+- Fix wxTreeCtrl::ScrollTo() with hidden root item (#23534).
+- Fix hang in wxFileDialog if COINIT_MULTITHREADED was used (#23578).
+- Fix handling of RLE-compressed bitmaps (Brian Nixon, #23573).
+- Fix wxWindow::GetTextExtent() with given font in high DPI (#23542).
+- Fix drawing owner-drawn menu items with bitmaps (Jacob Gillespie, #23230).
+- Improve ScrollTo() with wxDV_VARIABLE_LINE_HEIGHT (Jens Göpfert, #23102).
+- Fix libraries names in Arch64 CMake build (Tobias Taschner, #23347).
+- Fix using wxComboCtrl with AUI floating pane as parent (#23399).
+- Fix wrong wxWindowsPrintNativeData initialization (Stefan Ziegler, #23685).
+- Fix position of wxStaticBox label after DPI change (Maarten Bent, #23740).
+- Fix background colour of empty cells in wxDataViewCtrl (#23708).
+- Fix possible (even if rare) crash in printer progress dialog (#23927).
+- Fix "+" button not appearing in wxTreeCtrl after adding a child (#23718).
+- Fix phantom mouse events after dismissing wxFileDialog (charvey2718, #10924).
+
+wxOSX:
+
+- Fix missing key events for ⌘+⎇+Letter combinations (#23671).
+- Add support for wxDP_DROPDOWN under macOS 10.15.4+ (Lauri Nurmi, #23520).
+- Fix initial width of empty wxTextCtrl (#23295).
+- Fix underlined fonts sometimes appearing without underline (#23264).
+- Respect composition mode when drawing bitmaps (#23240).
+- Fix background colour of shaped windows, e.g. wxRichToolTip (#23296).
+- Fix memory leak in wxFileDialog using custom controls (#23304).
+- Restore setting C-level locale when using wxLocale (#23557).
+- Check column for wxEVT_DATAVIEW_ITEM_ACTIVATED (Hartwig Wiesmann, #23636).
+- Fix spurious -Wundeclared-selector with Xcode 14 (Hartwig Wiesmann, #23639).
+- Recognize macOS 14 Sonoma in wxGetOsDescription() (Tobias Taschner, #23615).
+- Fix setting Chinese locales (#23209).
+- Wrap wxStaticText contents (#23341).
+- Fix invisible wxStaticLine under macOS >= 13 (#23913).
+
+wxUniv:
+
+- Fix resetting the hint in wxTextCtrl when it gets focus (Kvaz1r, #23511).
+- Fix creating wxRadioBox without any items (Kvaz1r, #23784).
+
+
3.2.2.1: (released 2023-02-13)
------------------------------
@@ -316,7 +470,7 @@ wxOSX:
- Fix possible crash in menu item event handling (#23040).
- Fix regression in text drawing when using clipping (#22629).
- Don't round fractional point size when creating fonts (#23144).
-- Do round size returned by wxFont::GetPixelS().
+- Do round size returned by wxFont::GetPixelSize().
- Map wxFONTFAMILY_DEFAULT to wxFONTFAMILY_SWISS as in the other ports (#23158).
- Generate wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK (#22833).
- Fix wxDataViewCtrl::HitTest() (Vojtěch Bubník, #22789).
diff --git a/docs/publicity/announce.txt b/docs/publicity/announce.txt
index d05efa2ed7..7ab01089f1 100644
--- a/docs/publicity/announce.txt
+++ b/docs/publicity/announce.txt
@@ -1,56 +1,36 @@
-February 08, 2023 -- The wxWidgets team is pleased to announce a new
+November 11, 2023 -- The wxWidgets team is pleased to announce a new
stable release of our open source framework for the development of native
cross-platform applications in C++.
-wxWidgets 3.2.2 is part of the API and ABI-stable 3.2.x release series and is
+wxWidgets 3.2.4 is part of the API and ABI-stable 3.2.x release series and is
now available from
https://www.wxwidgets.org/downloads/
and
- https://github.com/wxWidgets/wxWidgets/releases/v3.2.2
+ https://github.com/wxWidgets/wxWidgets/releases/v3.2.4
-This release comes only a few months after the previous 3.2.1, but contains
-an important number of bug fixes and enhancements, further improving high DPI
-support, including:
+This release comes very soon after 3.2.3 because some of the changes
+in the last release resulted in regressions fixed by this release.
+Notably, 3.2.4 fixes a critical bug which made applications using wxGTK
+but not initializing the GUI to crash (see issue #23981).
-- Better window resizing on DPI change in wxMSW.
-- Fix using native icons returned by wxArtProvider.
-- Fix menu items using custom font in high DPI.
-- High resolution icons support in wxGenericTreeCtrl and wxGenericListCtrl.
+Other bug fixes include:
-and also improving locale-related code under Mac and Unix systems:
+- Fix regression in wxTranslations::AddCatalog() return value (#24019).
+- Fix possible crash and too high CPU use when using EGL (#24018).
+- Fix losing clipboard contents when clearing a different selection (#23988).
+- Fix possible crash when dragging pages in wxAuiNotebook (#24027).
+- Fix refreshing multiple selection items in generic wxListCtrl.
+- Fix showing windows for background apps under macOS Sonoma (#23893).
-- wxUILocale::UseDefault() works for locales using different language and
- region under Mac and fails when used for unsupported locale under Unix.
-- New wxUILocale::GetSystemLocaleId() allows to retrieve such locales IDs.
-- wxUILocale::GetCurrent() works currently for "C" locale under Mac.
+The only new addition in this release is the possibility to create objects
+of wx legacy "dynamic arrays" class from std::initializer_list<> (#23966).
-Some other user-visible enhancements made in this release:
+Please see the full change log for more details:
-- Allow selecting and copying text in wxMessageDialog in wxGTK.
-- Improve size and behaviour of in-place editor in wxGenericTreeCtrl.
-- Fix sometimes missing overwrite prompt in "Save" file dialog in wxMSW.
-- Fix glitch in drawing wxStaticBox with a control as label in wxMSW.
-
-There are also some important bug fixes:
-
-- Fix regression in saving TIFF images that could end up truncated.
-- Fix long standing bug in parsing wxHTTP responses.
-- Fix data race when processing events generated in a worker thread.
-- Avoid appending extraneous NUL bytes to wxTextDataObject text in wxMSW.
-- Fix handling of fonts with fractional sizes in wxOSX.
-- Fix resizing wxGLCanvas with EGL and Wayland in wxGTK.
-- Fix display artefacts when using AUI without compositor under X11.
-- Work around crashes when using wxTextCtrl with MinGW TDM 64.
-- Fix for a possible crash when handling menu events under Mac.
-- Third-party libraries have been updated to the latest versions.
-
-All in all, this release includes ~150 fixes from 27 unique contributors,
-please see the full change log for more details:
-
-https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.2.2/docs/changes.txt
+https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.2.4/docs/changes.txt
This release is API and ABI-compatible with the previous 3.2.x, so
the existing applications don't even need to be rebuilt to profit from all the
diff --git a/docs/readme.txt b/docs/readme.txt
index 5bf0642df4..bfd5fcfb2a 100644
--- a/docs/readme.txt
+++ b/docs/readme.txt
@@ -1,5 +1,5 @@
-wxWidgets 3.2.2.1 Release Notes
-===============================
+wxWidgets 3.2.4 Release Notes
+=============================
Welcome to the new stable release of wxWidgets, a free and open source
cross-platform C++ framework for writing advanced GUI applications using
@@ -16,7 +16,7 @@ more about wxWidgets at:
Documentation is available online at:
-* https://docs.wxwidgets.org/3.2.2/
+* https://docs.wxwidgets.org/3.2.4/
wxWidgets sources and binaries for the selected platforms are available for
download from:
@@ -25,56 +25,36 @@ download from:
or, for a more more permanent but less convenient to use link, from
-* https://github.com/wxWidgets/wxWidgets/releases/tag/v3.2.2.1/
+* https://github.com/wxWidgets/wxWidgets/releases/tag/v3.2.4/
-Please see https://docs.wxwidgets.org/3.2.2/overview_install.html for full
+Please see https://docs.wxwidgets.org/3.2.4/overview_install.html for full
installation instructions.
-Changes since 3.2.1
+Changes since 3.2.3
-------------------
-This release comes only a few months after the previous 3.2.1, but contains
-an important number of bug fixes and enhancements, further improving high DPI
-support, including:
+This release comes very soon after 3.2.3 because some of the changes
+in the last release resulted in regressions fixed by this release.
+Notably, 3.2.4 fixes a critical bug which made applications using wxGTK
+but not initializing the GUI to crash (see issue #23981).
-- Better window resizing on DPI change in wxMSW.
-- Fix using native icons returned by wxArtProvider.
-- Fix menu items using custom font in high DPI.
-- High resolution icons support in wxGenericTreeCtrl and wxGenericListCtrl.
+Other bug fixes include:
-and also improving locale-related code under Mac and Unix systems:
+- Fix regression in wxTranslations::AddCatalog() return value (#24019).
+- Fix possible crash and too high CPU use when using EGL (#24018).
+- Fix losing clipboard contents when clearing a different selection (#23988).
+- Fix possible crash when dragging pages in wxAuiNotebook (#24027).
+- Fix refreshing multiple selection items in generic wxListCtrl.
+- Fix showing windows for background apps under macOS Sonoma (#23893).
-- wxUILocale::UseDefault() works for locales using different language and
- region under Mac and fails when used for unsupported locale under Unix.
-- New wxUILocale::GetSystemLocaleId() allows to retrieve such locales IDs.
-- wxUILocale::GetCurrent() works currently for "C" locale under Mac.
+The only new addition in this release is the possibility to create objects
+of wx legacy "dynamic arrays" class from std::initializer_list<> (#23966).
-Some other user-visible enhancements made in this release:
+Please see the full change log for more details:
-- Allow selecting and copying text in wxMessageDialog in wxGTK.
-- Improve size and behaviour of in-place editor in wxGenericTreeCtrl.
-- Fix sometimes missing overwrite prompt in "Save" file dialog in wxMSW.
-- Fix glitch in drawing wxStaticBox with a control as label in wxMSW.
-
-There are also some important bug fixes:
-
-- Fix regression in saving TIFF images that could end up truncated.
-- Fix long standing bug in parsing wxHTTP responses.
-- Fix data race when processing events generated in a worker thread.
-- Avoid appending extraneous NUL bytes to wxTextDataObject text in wxMSW.
-- Fix handling of fonts with fractional sizes in wxOSX.
-- Fix resizing wxGLCanvas with EGL and Wayland in wxGTK.
-- Fix display artefacts when using AUI without compositor under X11.
-- Work around crashes when using wxTextCtrl with MinGW TDM 64.
-- Fix for a possible crash when handling menu events under Mac.
-- Third-party libraries have been updated to the latest versions.
-
-All in all, this release includes ~150 fixes from 27 unique contributors,
-please see the full change log for more details:
-
-https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.2.2.1/docs/changes.txt
+https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.2.4/docs/changes.txt
This release is API and ABI-compatible with the previous 3.2.x releases, so
the existing applications don't even need to be rebuilt to profit from all the
@@ -174,4 +154,4 @@ developed by its users and your contributions to it are always welcome!
Have fun!
-The wxWidgets Team, February 2023
+The wxWidgets Team, November 2023
diff --git a/include/wx/msw/wx_dpi_aware.manifest b/include/wx/msw/wx_dpi_aware.manifest
index 441cbafe1f..ab04033ebc 100644
--- a/include/wx/msw/wx_dpi_aware.manifest
+++ b/include/wx/msw/wx_dpi_aware.manifest
@@ -5,17 +5,16 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
true
- UTF-8
diff --git a/include/wx/msw/wx_dpi_aware_pmv2.manifest b/include/wx/msw/wx_dpi_aware_pmv2.manifest
index f80ef49c86..407c991842 100644
--- a/include/wx/msw/wx_dpi_aware_pmv2.manifest
+++ b/include/wx/msw/wx_dpi_aware_pmv2.manifest
@@ -5,18 +5,17 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
PerMonitorV2, system
true
- UTF-8
diff --git a/include/wx/osx/config_xcode.h b/include/wx/osx/config_xcode.h
index 628b56dee7..044bf4005f 100644
--- a/include/wx/osx/config_xcode.h
+++ b/include/wx/osx/config_xcode.h
@@ -121,9 +121,9 @@
#define PACKAGE_BUGREPORT "wx-dev@googlegroups.com"
#define PACKAGE_NAME "wxWidgets"
-#define PACKAGE_STRING "wxWidgets 3.2.2.1"
+#define PACKAGE_STRING "wxWidgets 3.2.4"
#define PACKAGE_TARNAME "wxwidgets"
-#define PACKAGE_VERSION "3.2.2.1"
+#define PACKAGE_VERSION "3.2.4"
// for jpeg
diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp
index f2a97ca91e..d54a81b2fb 100644
--- a/src/generic/treectlg.cpp
+++ b/src/generic/treectlg.cpp
@@ -438,26 +438,21 @@ wxTreeTextCtrl::wxTreeTextCtrl(wxGenericTreeCtrl *owner,
wxRect rect;
m_owner->GetBoundingRect(m_itemEdited, rect, true);
- // corrects position and size for better appearance
-#ifdef __WXMSW__
- rect.x -= 5;
- rect.width += 10;
-#elif defined(__WXGTK__)
- rect.x -= 5;
- rect.y -= 2;
- rect.width += 8;
- rect.height += 4;
-#endif // platforms
-
const wxSize textSize = rect.GetSize();
wxSize fullSize = GetSizeFromTextSize(textSize);
+
+ // Ensure that the text field covers tree item.
+ fullSize.x = wxMax(fullSize.x, textSize.x + 5);
+
+ // Correct position for better appearance.
+#ifdef __WXMSW__
+ rect.x -= 5;
+#else
+ rect.x -= (fullSize.x - textSize.x) / 2;
+#endif
+
if ( fullSize.y > textSize.y )
- {
- // It's ok to extend the rect to the right horizontally, which happens
- // when we just change its size without changing its position below,
- // but when extending it vertically, we need to keep it centered.
- rect.y -= (fullSize.y - textSize.y + 1) / 2;
- }
+ rect.y -= (fullSize.y - textSize.y) / 2;
// Also check that the control fits into the parent window.
const int totalWidth = m_owner->GetClientSize().x;