python-gtk

This commit is contained in:
Rmys
2020-02-12 22:24:27 +03:00
parent 085c7d6649
commit d37b01dabd
3 changed files with 104 additions and 2 deletions
@@ -0,0 +1,63 @@
From eca72baa5616fbe4dbebea43c7e5940847dc5ab8 Mon Sep 17 00:00:00 2001
From: "Owen W. Taylor" <otaylor@fishsoup.net>
Date: Tue, 27 Sep 2011 00:17:52 -0400
Subject: [PATCH 1/2] Fix leaks of Pango objects
Gtk.PrintContext.create_pango_context()
Gtk.PrintContext.create_pango_layout()
pangocairo.CairoContext.create_layout()
were leaking the objects they returned.
https://bugzilla.gnome.org/show_bug.cgi?id=660216
---
gtk/gtk-2.10.defs | 2 ++
pangocairo.override | 11 ++++++++---
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/gtk/gtk-2.10.defs b/gtk/gtk-2.10.defs
index 69c7e0c..faa45e1 100644
--- a/gtk/gtk-2.10.defs
+++ b/gtk/gtk-2.10.defs
@@ -1388,12 +1388,14 @@
(define-method create_pango_context
(of-object "GtkPrintContext")
(c-name "gtk_print_context_create_pango_context")
+ (caller-owns-return #t)
(return-type "PangoContext*")
)
(define-method create_pango_layout
(of-object "GtkPrintContext")
(c-name "gtk_print_context_create_pango_layout")
+ (caller-owns-return #t)
(return-type "PangoLayout*")
)
diff --git a/pangocairo.override b/pangocairo.override
index bb923e6..5101107 100644
--- a/pangocairo.override
+++ b/pangocairo.override
@@ -118,11 +118,16 @@ _wrap_pango_cairo_update_context(PyGObject *self, PyObject *args, PyObject *kwar
static PyObject *
_wrap_pango_cairo_create_layout(PyGObject *self)
{
- PangoLayout *ret;
+ PangoLayout *layout;
+ PyObject *ret;
- ret = pango_cairo_create_layout(PycairoContext_GET(self));
+ layout = pango_cairo_create_layout(PycairoContext_GET(self));
/* pygobject_new handles NULL checking */
- return pygobject_new((GObject *)ret);
+ ret = pygobject_new((GObject *)layout);
+ if (layout)
+ g_object_unref(layout);
+
+ return ret;
}
static PyObject *
--
2.5.5
@@ -0,0 +1,39 @@
From 877164b6b70780468a31d8211f29421b6f34b0c8 Mon Sep 17 00:00:00 2001
From: Mathieu Bridon <bochecha@daitauha.fr>
Date: Thu, 24 Oct 2019 22:58:36 +0200
Subject: [PATCH] Drop the PangoFont find_shaper virtual method
This API has been removed from Pango 1.44.6, because it was completely
unused by anything.
However, PyGTK tries to bind everything, even unused API.
Removing this from PyGTK means we can build it against the latest Pango
again.
---
pango.defs | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/pango.defs b/pango.defs
index 2a79ecc..862667a 100644
--- a/pango.defs
+++ b/pango.defs
@@ -1391,15 +1391,6 @@
)
)
-(define-virtual find_shaper
- (of-object "PangoFont")
- (return-type "PangoEngineShape*")
- (parameters
- '("PangoLanguage*" "lang")
- '("guint32" "ch")
- )
-)
-
(define-virtual get_glyph_extents
(of-object "PangoFont")
(return-type "none")
--
2.21.0
@@ -25,8 +25,8 @@
<Dependency>python-cairo-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">fix-leaks-of-pango-objects.patch</Patch>
<Patch level="1">python27.patch</Patch>
<Patch level="1">0001-Fix-leaks-of-Pango-objects.patch</Patch>
<Patch level="1">pygtk-Drop-the-PangoFont-find_shaper-virtual-method.patch</Patch>
</Patches>
</Source>