2023-11-21 Kjell Ahlstedt 4.13.2 2023-11-21 Kjell Ahlstedt Add Gtk::GraphicsOffload * configure.ac: * meson.build: Require gtk4 >= 4.13.3. * gtk/gtkmm/meson.build: * gtk/src/filelist.am: Add graphicsoffload. * gtk/src/enums.hg: Add enum GraphicsOffloadEnabled. * gtk/src/graphicsoffload.[ccg|hg]: New files. * gtk/src/video.hg: Add get/set/property_graphics_offload(). * tools/m4/convert_gtk.m4: Add conversions for GraphicsOffloadEnabled. 2023-11-21 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files using gtk files from gtk 4.13.3. Update gtk_docs_override.xml and tools/extra_defs_gen/generate_defs_gtk.cc. 2023-11-16 Kjell Ahlstedt Gtk::Window: Get an extra reference, if not managed From the documentation of gtk_window_new(): Due to GTK keeping a reference to the window internally, gtk_window_new() does not return a reference to the caller. GtkWindow acts approximately like a method marked (transfer none). The Gtk::Window constructors shall take a reference in order to avoid premature deletion of the GtkWindow, if it's destroyed, e.g. when it's closed. Fixes #151 2023-11-14 Daniel Boles NEWS: Update for recent changes 2023-11-13 Daniel Boles TreeIter: Document pitfall @ `&row = *m->append()` https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/88#note_1908596 &c 2023-11-10 Daniel Boles TreeIter: Add various missing fn docs & intro para 2023-11-10 Kjell Ahlstedt tests/tree_model_iterator: Copy a model row instead of referencing it See !88 2023-11-08 Kjell Ahlstedt Gtk::RecentInfo: Fix refcount of Glib::Datetime get_added(), get_modified(), get_visited() and get_application_info() return a Glib::DateTime. GtkRecentInfo returns the GDateTime with (transfer none). The RecentInfo methods must add their own reference. Fixes #150 2023-11-07 Kjell Ahlstedt meson.build: Improve the test for warning_level Make it more immune to possible future added values. See !87 2023-11-04 Daniel Boles tests/tree_model_iterator: Fix CRITICALs as !model Kjell noticed at line 118 and the others creating paths from iterators: > Gtk-CRITICAL **: 10:21:51.432: gtk_tree_model_get_path: > assertion 'GTK_IS_TREE_MODEL (tree_model)' failed These criticals were because the paths were created from iterators not associated with a model. Make them use the same 'dummy' model as others. https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/88#note_1907963 2023-11-03 Kjell Ahlstedt Gtk: SearchEntry keeps deriving GType gtkmm__GtkSearchEntry instead of SearchEntry2. SearchEntry2 does not need a derived GType. 2023-11-03 Daniel Boles tests/tree_model_iterator: Fix/add const+non tests * Rename test_const_conversion() to _comparison() as that's what it does * Rename test_assignment_from_const() to _to_const(), ditto - & fix that not actually comparing the 2 different constness types, by using auto! * Make latter actually test assignment; it was only trying construction… * Make latter test that operator=() returns *this, per my recent bugfix! * Add real _from_const(), which static_asserts !constructible/assignable * Add test_operator_bool() * Add a basic model so we can check bool/equality after construction and assignment when we have a model, not only for empty/invalid iterators, since checking we are STILL empty doesnʼt confirm the operation worked 2023-11-02 Daniel Boles meson.build—Donʼt fail if warning_level=everything We assume the meson configure variable warning_level can always be converted to int, but nowadays there is a standard 'everything' option, which if used was causing `ninja` builds to fail. While that level is not very useful due to all the dodgy C stuff we are built on top of, it should still work in case anyone wants to test particular files under it – so this fixes it, by changing 'everything' to the arbitrarily high 99. 2023-11-02 Daniel Boles NEWS: Update to mention additions coming in 4.13.2 2023-11-02 Daniel Boles TreeIter: Fix operator=() missing return statement This is of course wrong and was causing crashes in the Inkscape GTK/mm4 porting effort, luckily now worked around by refactoring relevant code. 2023-11-02 Daniel Boles Widget: Add [[nodiscard]] on get_children() and... ...drop some more redundant Gtk:: namespace qualifications there, and avoid introducing a template typename ambiguously also called Widget. https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/85 2023-11-02 Kjell Ahlstedt Gtk: Add SearchEntry2, deprecate SearchEntry SearchEntry wrongly inherits from Entry. GtkSearchEntry does not inherit from GtkEntry in gtk4. SearchEntry can't be fixed without breaking ABI. * demos/gtk-demo/example_iconbrowser.cc: Use SearchEntry2. * demos/gtk-demo/main.cc: Call Application::wrap_in_search_entry2(). * gtk/gtkmm.h: * gtk/gtkmm/meson.build: * gtk/src/filelist.am: Add searchentry2. * gtk/src/application.[ccg|hg]: Add wrap_in_search_entry2(). * gtk/src/searchentry.hg: Deprecate in favor of SearchEntry2. * gtk/src/searchentry2.[ccg|hg]: New files. Fixes #148 2023-10-31 Daniel Boles Widget: Add measure+get_preferred_size() → structs Add overloads returning structs with named members – as opposed to the ‘raw’ C output parameters, and to returning only tuples which in their anonymity are error-prone & not as user-friendly as named members are. This makes it far easier/nicer to write the very-frequent code that currently must declare redundant/uninit'd variables, pass out args, etc… ```cpp int minimum, natural, minimum_baseline, natural_baseline; widget.measure(Orientation::HORIZONTAL, -1, minimum, natural, minimum_baseline, natural_baseline); do_something(natural); ``` can become: `do_something(widget.measure(Orientation::HORIZONTAL).sizes.natural)` #38 (comment 1903091) https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/83#note_1904930 2023-10-31 Daniel Boles Widget: Fix outdated, wrong destructor doc comment https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/84#note_1904193 ```none commit 449249a8098cacdb1a6410472366527201e2cc77 (origin/dboles/Widget-doc-cosmetics, dboles/Widget-doc-cosmetics) Author: Daniel Boles Date: Mon Oct 30 16:31:45 2023 +0000 Widget: Fix outdated, wrong destructor doc comment Now destroying a widget will not remove it from a parent if it has one, as GTK4 removed GtkContainer and hence any uniform way to remove() etc. https://gitlab.gnome.org/GNOME/gtkmm/-/issues/138#note_1775964 commit 92caa8a2fa882339479e33faf25750c1e2d8a843 Author: Daniel Boles Date: Mon Oct 30 16:28:24 2023 +0000 Widget: Add some 'section heading' comments commit 88128a723d8987b7c65883ca009e683a6beef26b Author: Daniel Boles Date: Mon Oct 30 15:45:26 2023 +0000 Widget: Sort includes commit 246ae7696665ae158a29e3f9dcfda1390dc31f76 Author: Daniel Boles Date: Mon Oct 30 15:38:22 2023 +0000 Widget—Remove redundant Gtk:: namespace qualifiers ``` 2023-10-26 Kjell Ahlstedt Gdk::DmabufTexture: GDK_GL_TEXTURE -> GDK_DMABUF_TEXTURE