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;