2022-03-21 Kjell Ahlstedt <kjellahlstedt@gmail.com> 4.6.1 2022-03-18 Kjell Ahlstedt <kjellahlstedt@gmail.com> CI: Use artifacts to transfer data between stages Build documentation of libsigc++, glibmm, cairomm and pangomm, or else gtkmm's inheritance diagrams will be incomplete due to missing tag files. 2022-03-13 Kjell Ahlstedt <kjellahlstedt@gmail.com> Gtk::Application::make_window_and_run(): Delay the deletion Let Gtk::Object::destroy_notify_() delete the created C++ wrapper (a Gtk::Window or a descendant of Gtk::Window) when the underlying C instance is destroyed. Signal handlers such as on_unrealize() are then called before the C++ wrapper is deleted. Fixes #114 2022-03-11 Kjell Ahlstedt <kjellahlstedt@gmail.com> enum Gdk::GLAPI: Name clash with epoxy/gl.h * gdk/src/glcontext.hg: GLAPI is defined as a preprocessor macro in epoxy/gl.h. Add some #ifndef and comments for now. When we can add API, deprecate all API with GLAPI and add an equivalent enum Gdk::GLApi. See #113 2022-02-27 Kjell Ahlstedt <kjellahlstedt@gmail.com> CI: Select latest released version of libsigc++3 2022-02-27 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. 2022-02-18 Kjell Ahlstedt <kjellahlstedt@gmail.com> meson.build: Don't use deprecated execute(..., gui_app: ...) Don't use deprecated python3.path() and execute(..., gui_app: ...). Let import('python').find_installation() always find the python installation used to run Meson. Fixes #111 2022-02-16 Baldvin Kovacs <baldvin.kovacs@gmail.com> Fix object ownership in the wrapper of the render signal. This change ensures that the wrapper implementation of the render signal emission does not take ownership of the underlying cairo_region_t C instance. It is necessary, because the C implementation expects to keep ownership, and destroys the underlying C instance after the signal was emitted. The wrapped signal is emitted from gdk_surface_process_update_internal. The relevant lines: expose_region = cairo_region_copy (surface->active_update_area); // here expose_region has a reference count of 1 g_signal_emit (surface, signals[RENDER], 0, expose_region, &handled); // ...and here it needs to remain one, but with the current implementation // we get a double destroy below: cairo_region_destroy (expose_region); 2022-02-09 Kjell Ahlstedt <kjellahlstedt@gmail.com> CI: Install modules required for building gtk4 If the gtk4 version in ubuntu:devel is too old, gtk4 is built as a subproject to gtkmm.