c1b8752ea3
resolves #9454
77 lines
2.4 KiB
Diff
77 lines
2.4 KiB
Diff
From 6a0ea012a7f51fdc5639bedabe446c9035461cda Mon Sep 17 00:00:00 2001
|
|
From: Henning Schild <henning@hennsch.de>
|
|
Date: Sun, 3 Dec 2017 12:14:00 +0100
|
|
Subject: [PATCH] gtk: replace deprecated gtk_type_new and _unique
|
|
|
|
Calling these causes segfaults.
|
|
|
|
This fix is based on
|
|
https://launchpadlibrarian.net/295253441/gmrun-tdp-patch.diff
|
|
---
|
|
src/gtkcompletionline.cc | 26 +++++++++++++++-----------
|
|
src/gtkcompletionline.h | 2 +-
|
|
2 files changed, 16 insertions(+), 12 deletions(-)
|
|
|
|
diff --git src/gtkcompletionline.cc src/gtkcompletionline.cc
|
|
index c21f7e3..5211a87 100644
|
|
--- src/gtkcompletionline.cc
|
|
+++ src/gtkcompletionline.cc
|
|
@@ -77,22 +77,26 @@ static gboolean
|
|
on_key_press(GtkCompletionLine *cl, GdkEventKey *event, gpointer data);
|
|
|
|
/* get_type */
|
|
-guint gtk_completion_line_get_type(void)
|
|
+GType gtk_completion_line_get_type(void)
|
|
{
|
|
- static guint type = 0;
|
|
+ static GType type = 0;
|
|
if (type == 0)
|
|
{
|
|
- GtkTypeInfo type_info =
|
|
+ static const GTypeInfo type_info =
|
|
{
|
|
- "GtkCompletionLine",
|
|
- sizeof(GtkCompletionLine),
|
|
sizeof(GtkCompletionLineClass),
|
|
- (GtkClassInitFunc)gtk_completion_line_class_init,
|
|
- (GtkObjectInitFunc)gtk_completion_line_init,
|
|
- /*(GtkArgSetFunc)*/NULL /* reserved */,
|
|
- /*(GtkArgGetFunc)*/NULL /* reserved */
|
|
+ NULL,
|
|
+ NULL,
|
|
+ (GClassInitFunc)gtk_completion_line_class_init,
|
|
+ NULL,
|
|
+ NULL,
|
|
+ sizeof(GtkCompletionLine),
|
|
+ 0,
|
|
+ (GInstanceInitFunc)gtk_completion_line_init,
|
|
+ NULL
|
|
};
|
|
- type = gtk_type_unique(gtk_entry_get_type(), &type_info);
|
|
+ type = g_type_register_static(GTK_TYPE_ENTRY, "GtkCompletionLine",
|
|
+ &type_info, (GTypeFlags)0);
|
|
}
|
|
return type;
|
|
}
|
|
@@ -745,7 +749,7 @@ complete_line(GtkCompletionLine *object)
|
|
GtkWidget *
|
|
gtk_completion_line_new()
|
|
{
|
|
- return GTK_WIDGET(gtk_type_new(gtk_completion_line_get_type()));
|
|
+ return GTK_WIDGET(g_object_new(gtk_completion_line_get_type(), NULL));
|
|
}
|
|
|
|
static void
|
|
diff --git src/gtkcompletionline.h src/gtkcompletionline.h
|
|
index 5e14cd7..0d7f2dc 100644
|
|
--- src/gtkcompletionline.h
|
|
+++ src/gtkcompletionline.h
|
|
@@ -76,7 +76,7 @@ extern "C++" {
|
|
void (* cancel)(GtkCompletionLine *cl);
|
|
};
|
|
|
|
- guint gtk_completion_line_get_type(void);
|
|
+ GType gtk_completion_line_get_type(void);
|
|
GtkWidget *gtk_completion_line_new();
|
|
|
|
void gtk_completion_line_last_history_item(GtkCompletionLine*);
|