From 88a84aefaca1694b562a322148367879083777f4 Mon Sep 17 00:00:00 2001 From: Bruce Cowan <bruce@bcowan.me.uk> Date: Fri, 7 Oct 2022 20:30:01 +0100 Subject: [PATCH] Dispose of templates properly --- meson.build | 6 +++--- src/rugby-app-window.c | 11 +++++++++++ src/rugby-pref-window.c | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index b8cbefc..458aa0d 100644 --- a/meson.build +++ b/meson.build @@ -19,7 +19,7 @@ desktopdir = datadir / 'applications' gnome = import('gnome') gio_dep = dependency('gio-2.0', version: '>= 2.66') -gtk_dep = dependency('gtk4', version: '>= 4.0') +gtk_dep = dependency('gtk4', version: '>= 4.8') libadwaita_dep = dependency('libadwaita-1') conf = configuration_data() @@ -45,8 +45,8 @@ config_h = vcs_tag( cflags = ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66', '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_66', - '-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_0', - '-DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_0', + '-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_8', + '-DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_8', '-Wno-overlength-strings', ] diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c index d9ec1f2..561f7d1 100644 --- a/src/rugby-app-window.c +++ b/src/rugby-app-window.c @@ -105,6 +105,14 @@ const GActionEntry win_entries[] = { { .name = "show-primary-menu", .activate = activate_show_primary_menu }, }; +static void +rugby_app_window_dispose (GObject *object) +{ + gtk_widget_dispose_template (GTK_WIDGET (object), RUGBY_TYPE_APP_WINDOW); + + G_OBJECT_CLASS (rugby_app_window_parent_class)->dispose (object); +} + static void rugby_app_window_init (RugbyAppWindow *self) { @@ -119,11 +127,14 @@ rugby_app_window_init (RugbyAppWindow *self) static void rugby_app_window_class_init (RugbyAppWindowClass *klass) { + GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); g_type_ensure (RUGBY_TYPE_POSSIBILITY_WIDGET); g_type_ensure (RUGBY_TYPE_LIST_STORE); + object_class->dispose = rugby_app_window_dispose; + gtk_widget_class_set_template_from_resource (widget_class, "/uk/me/bcowan/Rugby/window.ui"); diff --git a/src/rugby-pref-window.c b/src/rugby-pref-window.c index 79b0b08..c226b7b 100644 --- a/src/rugby-pref-window.c +++ b/src/rugby-pref-window.c @@ -24,6 +24,7 @@ rugby_pref_window_dispose (GObject *object) { RugbyPrefWindow *self = RUGBY_PREF_WINDOW (object); + gtk_widget_dispose_template (GTK_WIDGET (object), RUGBY_TYPE_PREF_WINDOW); g_clear_object (&self->settings); G_OBJECT_CLASS (rugby_pref_window_parent_class)->dispose (object); -- GitLab