pygtk r2960 - in trunk: . gtk



Author: gianmt
Date: Wed Feb  6 13:19:30 2008
New Revision: 2960
URL: http://svn.gnome.org/viewvc/pygtk?rev=2960&view=rev

Log:
Create instance of GdkScreen using gdk_screen_get_default() to avoid segfault. Fix #444974.

Modified:
   trunk/ChangeLog
   trunk/gtk/gdk-base.defs
   trunk/gtk/gdk.override

Modified: trunk/gtk/gdk-base.defs
==============================================================================
--- trunk/gtk/gdk-base.defs	(original)
+++ trunk/gtk/gdk-base.defs	Wed Feb  6 13:19:30 2008
@@ -3866,6 +3866,13 @@
   (return-type "GdkScreen*")
 )
 
+;; dummy, overridden to return gdk_screen_get_default()
+(define-function gdk_screen_new
+  (c-name "gdk_screen_new")
+  (return-type "GdkScreen*")
+  (is-constructor-of "GdkScreen")
+)
+
 (define-method get_setting
   (of-object "GdkScreen")
   (c-name "gdk_screen_get_setting")

Modified: trunk/gtk/gdk.override
==============================================================================
--- trunk/gtk/gdk.override	(original)
+++ trunk/gtk/gdk.override	Wed Feb  6 13:19:30 2008
@@ -922,6 +922,23 @@
     return py_list;
 }
 %%
+override gdk_screen_new noargs
+static int
+_wrap_gdk_screen_new (PyGObject *self)
+{
+    self->obj = (GObject *)gdk_screen_get_default();
+    if (!self->obj) {
+	PyErr_SetString(PyExc_RuntimeError,
+			"could not get default display");
+	return -1;
+    }
+
+    g_object_ref(self->obj);
+
+    pygobject_register_wrapper((PyObject *)self);
+    return 0;
+}
+%%
 override gdk_screen_list_visuals noargs
 static PyObject *
 _wrap_gdk_screen_list_visuals(PyGObject *self)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]