2022-02-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.2.0

2022-02-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Specify 'check' option in run_command()

  The default value will be changed in future Meson releases.
  
  Don't use deprecated python3.path() and execute(..., gui_app: ...).

2022-02-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/docs/reference/Doxyfile.in: Remove obsolete entry

2022-01-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/tutorial-custom-cmd.py: Add comment about used stylesheet

2022-01-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Install docbook-xsl where documentation is built

  If docbook-xsl is installed, the xsltproc command reads stylesheets
  from local files instead of from http://docbook.sourceforge.net.
  Faster and safer. Reading from docbook.sourceforge.net sometimes fails.
  
  Remove test with g++-7.

2021-12-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs: Fix links to sigc::slot and sigc::signal

  Doxygen creates links to sigc::slot and sigc::signal only if
  template parameters are included in the documentation.
  sigc::slot<T_return(T_arg...)>, sigc::signal<T_return(T_arg...)>.

2021-12-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  ptr_fun(), mem_fun() docs: Remove left-overs from sigc++-2.0

  Some documentation of template parameters described sigc++-2.0
  rather than sigc++-3.0.

2021-12-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Reformat to suit clang-format-12

2021-12-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Use clang-format-12

  and call clang-format directly without using autogen.sh + make.

2021-12-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Second attempt to suit clang-format 10

  Irritating that different versions of clang-format don't agree on what's
  an acceptable format, and that clang-format 10 is not easily installable
  on Ubuntu 21.10.

2021-12-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Format source code to suit clang-format

  * sigc++/functors/mem_fun.h:
  * sigc++/functors/ptr_fun.h:
  * tests/test_rvalue_ref.cc: Reformated with clang-format 13,
  but CI uses clang-format 10.
  
  Also add #include <utility> where std::forward was added. Doesn't seem
  to be necessary with g++ or clang++. Mostly a precaution.

2021-12-23  Slava Andrejev  <vyac.andrejev@gmail.com>

  Add missing perfect forwarding in mem_functor and pointer_functor

  This is a missed addition to the commit that allowed rvalue references
  in slot parameters.

2021-12-23  Slava Andrejev  <vyac.andrejev@gmail.com>

  Add missing perfect forwarding in bound_mem_functor::operator()

  This is a missed addition to the commit that allowed rvalue references
  in slot parameters.

2021-12-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CMakeLists.txt: Update sigc++ version to 3.0.7

  Should have been done when configure.ac and meson.build were updated.

2021-11-09  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Support building with VS2022

  Make the VS2019 builds distinct from VS2022 builds.

2021-09-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/docs/manual, Meson config: Check if xmllint can be used

2021-09-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI, Meson build: Install packages for validating XML file

  libxml2-utils and docbook5-xml are necessary in order to validate
  the XML file in docs/docs/manual/.

2021-09-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/docs/manual: Upgrade from DocBook 4.1 to DocBook 5.0

2021-08-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Require meson >= 0.54.0

2021-08-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Check if Perl is required for building documentation

  New versions of mm-common use the Python scripts doc_postprocess.py
  and doc_install.py instead of the Perl scripts doc-postprocess.pl and
  doc-install.pl when documentation is built.

2021-07-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs: Remove some obsolete files

  Remove docs/docs/manual/README, docs/docs/reference/README
  and docs/Makefile.

2021-07-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/docs/manual: Add some formatting when html files are generated

  making it slightly more similar to gtkmm-documentation and libxml++.
  In Autotools builds, don't distribute the empty manual/README file.

2021-07-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/docs/manual/libsigc_manual.xml: Add id on <sect1> elements

2021-06-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  test_rvalue_ref: Small fixes

  * tests/.gitignore:
  * tests/CMakeLists.txt:
  * tests/Makefile.am: Add test_rvalue_ref.
  * tests/test_rvalue_ref.cc: Avoid [-Werror=unused-parameter]
  when building with warnings=fatal.
  
  Some files have been reformated with clang-format in order to
  make the CI tests happy. Reformated with clang-format 12, but CI
  uses clang-format 10.

2021-06-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Revert "test_rvalue_ref: Small fixes"

  This reverts commit 01652fdbc9f6fc2e72b217c9de8c89c93f95ba7c.

2021-06-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  test_rvalue_ref: Small fixes

  * tests/.gitignore:
  * tests/CMakeLists.txt:
  * tests/Makefile.am: Add test_rvalue_ref.
  * tests/test_rvalue_ref.cc: Avoid [-Werror=unused-parameter]
  when building with warnings=fatal.
  
  Some files have also been reformated with clang-format in order to
  make the CI tests happy. Reformated with clang-format 12, but CI
  uses clang-format 10.

2021-06-02  Slava Andrejev  <vyac.andrejev@gmail.com>

  Allow slots with rvalue reference parameters

  In code based on Glibmm it's quite common to convert a Glib C structure
  to a Glib::Object's descendant before passing it as a parameter to a
  slot. If the slot is not supposed to modify the object, then everything
  is fine, we can declare the parameter as a const reference and the
  temporary object will be accurately dealt with by the compiler. However,
  if the Glib based object is getting modified, the only way to pass it to
  the slot is to declare it a Glib::RefPtr shared pointer. This creates a
  lot of unnecessary churn of memory allocations for a simple deal of
  calling a signal. However, C++ has a specific mean for this particular
  semantic of passing a temporary object: rvalue reference.
  
  For example, somewhere inside Gtkmm might be a declaration:
  _WRAP_SIGNAL(void sun_rose(const Glib::RefPtr<Gtk::Sun> &new_sun),
  "sun-rose")
  
  Instead its more semantically correct to write:
  _WRAP_SIGNAL(void sun_rose(Gtk::Sun &&new_sun), "sun-rose")
  
  And later somewhere in your code:
  world->signal_sun_rose().connect([&](auto &&new_sun) {
    new_sun.shine();
  });
  
  This commit makes a couple of simple modifications that allow declaring
  signals and slots with rvalue reference parameter.