]> git.pld-linux.org Git - packages/dia.git/blame - dia-glib.patch
- rel 5; glib fixes from fc (fixes segfault)
[packages/dia.git] / dia-glib.patch
CommitLineData
4c662dd4
AM
1diff -up dia-0.97.2/app/render_gdk.c.glib dia-0.97.2/app/render_gdk.c
2--- dia-0.97.2/app/render_gdk.c.glib 2013-05-02 14:23:22.294850484 +0200
3+++ dia-0.97.2/app/render_gdk.c 2013-05-02 14:26:51.176963531 +0200
4@@ -50,7 +50,21 @@ static void copy_to_window (DiaRenderer
5 gpointer window,
6 int x, int y, int width, int height);
7
8-static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
9+typedef struct _DiaGdkInteractiveRenderer DiaGdkInteractiveRenderer;
10+struct _DiaGdkInteractiveRenderer
11+{
12+ DiaGdkRenderer parent_instance; /*!< inheritance in object oriented C */
13+};
14+typedef struct _DiaGdkInteractiveRendererClass DiaGdkInteractiveRendererClass;
15+struct _DiaGdkInteractiveRendererClass
16+{
17+ DiaGdkRendererClass parent_class; /*!< the base class */
18+};
19+#define DIA_TYPE_GDK_INTERACTIVE_RENDERER (dia_gdk_interactive_renderer_get_type ())
20+#define DIA_GDK_INTERACTIVE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_GDK_INTERACTIVE_RENDERER, DiaGdkInteractiveRenderer))
21+
22+static void
23+dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
24 {
25 iface->clip_region_clear = clip_region_clear;
26 iface->clip_region_add_rect = clip_region_add_rect;
27@@ -61,36 +75,35 @@ static void dia_gdk_renderer_iface_init
28 iface->set_size = set_size;
29 }
30
31+G_DEFINE_TYPE_WITH_CODE (DiaGdkInteractiveRenderer, dia_gdk_interactive_renderer, DIA_TYPE_GDK_RENDERER,
32+ G_IMPLEMENT_INTERFACE (DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE, dia_gdk_renderer_iface_init));
33+
34+static void
35+dia_gdk_interactive_renderer_class_init(DiaGdkInteractiveRendererClass *klass)
36+{
37+}
38+static void
39+dia_gdk_interactive_renderer_init(DiaGdkInteractiveRenderer *object)
40+{
41+ DiaGdkInteractiveRenderer *ia_renderer = DIA_GDK_INTERACTIVE_RENDERER (object);
42+ DiaGdkRenderer *renderer = DIA_GDK_RENDERER(object);
43+ DiaRenderer *dia_renderer = DIA_RENDERER(object);
44+
45+ dia_renderer->is_interactive = 1;
46+
47+ renderer->gc = NULL;
48+ renderer->pixmap = NULL;
49+ renderer->clip_region = NULL;
50+}
51+
52 DiaRenderer *
53 new_gdk_renderer(DDisplay *ddisp)
54 {
55 DiaGdkRenderer *renderer;
56 GType renderer_type = 0;
57
58- renderer = g_object_new (DIA_TYPE_GDK_RENDERER, NULL);
59+ renderer = g_object_new (DIA_TYPE_GDK_INTERACTIVE_RENDERER, NULL);
60 renderer->transform = dia_transform_new (&ddisp->visible, &ddisp->zoom_factor);
61- if (!DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer))
62- {
63- static const GInterfaceInfo irenderer_iface_info =
64- {
65- (GInterfaceInitFunc) dia_gdk_renderer_iface_init,
66- NULL, /* iface_finalize */
67- NULL /* iface_data */
68- };
69-
70- renderer_type = DIA_TYPE_GDK_RENDERER;
71- /* register the interactive renderer interface */
72- g_type_add_interface_static (renderer_type,
73- DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE,
74- &irenderer_iface_info);
75-
76- }
77- renderer->parent_instance.is_interactive = 1;
78- renderer->gc = NULL;
79-
80- renderer->pixmap = NULL;
81- renderer->clip_region = NULL;
82-
83 return DIA_RENDERER(renderer);
84 }
85
This page took 0.077835 seconds and 4 git commands to generate.