]> git.pld-linux.org Git - packages/dia.git/blob - dia-glib.patch
- rel 5; glib fixes from fc (fixes segfault)
[packages/dia.git] / dia-glib.patch
1 diff -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.075134 seconds and 3 git commands to generate.