[gtk/gtk-demo-tweaks: 3/9] gtk-demo: Fix a leak
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gtk-demo-tweaks: 3/9] gtk-demo: Fix a leak
- Date: Sun, 7 Jun 2020 02:16:19 +0000 (UTC)
commit 15257e39222e8313c850ac2a9ba371cc2c648cc7
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jun 6 20:09:42 2020 -0400
gtk-demo: Fix a leak
The themes demo was leaking its builder, and
therefore couldn't be closed.
demos/gtk-demo/themes.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
---
diff --git a/demos/gtk-demo/themes.c b/demos/gtk-demo/themes.c
index edcdd2ec35..83d8073b4c 100644
--- a/demos/gtk-demo/themes.c
+++ b/demos/gtk-demo/themes.c
@@ -92,12 +92,11 @@ static Theme themes[] = {
static int theme;
static gboolean
-change_theme (GtkWidget *widget,
+change_theme (GtkWidget *widget,
GdkFrameClock *frame_clock,
- gpointer data)
+ gpointer data)
{
- GtkBuilder *builder = data;
- GtkWidget *label;
+ GtkWidget *label = data;
Theme next = themes[theme++ % G_N_ELEMENTS (themes)];
char *name;
@@ -110,7 +109,6 @@ change_theme (GtkWidget *widget,
gtk_window_set_title (GTK_WINDOW (widget), name);
g_free (name);
- label = GTK_WIDGET (gtk_builder_get_object (builder, "fps"));
if (frame_clock)
{
char *fps;
@@ -127,10 +125,10 @@ change_theme (GtkWidget *widget,
static void
clicked (GtkGestureClick *gesture,
- int n_press,
- double x,
- double y,
- gpointer data)
+ int n_press,
+ double x,
+ double y,
+ gpointer data)
{
GtkWidget *window;
GdkEvent *event;
@@ -198,6 +196,7 @@ do_themes (GtkWidget *do_widget)
GtkBuilder *builder;
GtkWidget *header;
GtkWidget *button;
+ GtkWidget *label;
GtkGesture *gesture;
builder = gtk_builder_new_from_resource ("/themes/themes.ui");
@@ -207,13 +206,17 @@ do_themes (GtkWidget *do_widget)
gtk_widget_get_display (do_widget));
header = GTK_WIDGET (gtk_builder_get_object (builder, "header"));
+ label = GTK_WIDGET (gtk_builder_get_object (builder, "fps"));
+
gesture = gtk_gesture_click_new ();
- g_signal_connect (gesture, "pressed", G_CALLBACK (clicked), builder);
+ g_signal_connect (gesture, "pressed", G_CALLBACK (clicked), label);
gtk_widget_add_controller (header, GTK_EVENT_CONTROLLER (gesture));
button = GTK_WIDGET (gtk_builder_get_object (builder, "toggle"));
- g_signal_connect (button, "notify::active", G_CALLBACK (toggle_cycle), builder);
+ g_signal_connect (button, "notify::active", G_CALLBACK (toggle_cycle), label);
gtk_widget_realize (window);
+
+ g_object_unref (builder);
}
if (!gtk_widget_get_visible (window))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]