[gnome-font-viewer] font-view: move FontConfig init/deinit to the application class



commit beec585919177c01a447814c10439170ddc6101e
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Tue May 1 15:25:26 2012 -0400

    font-view: move FontConfig init/deinit to the application class
    
    Safely init FontConfig once for the whole app, and de-init it when
    quitting.

 src/font-model.c |    2 --
 src/font-view.c  |   14 ++++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/src/font-model.c b/src/font-model.c
index 566ccc4..e4fc1ab 100644
--- a/src/font-model.c
+++ b/src/font-model.c
@@ -440,8 +440,6 @@ font_view_model_init (FontViewModel *self)
 
     self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, FONT_VIEW_TYPE_MODEL, FontViewModelPrivate);
 
-    if (!FcInit())
-        g_critical ("Can't initialize fontconfig library");
     if (FT_Init_FreeType (&self->priv->library) != FT_Err_Ok)
         g_critical ("Can't initialize FreeType library");
 
diff --git a/src/font-view.c b/src/font-view.c
index d0e2fc9..7ac4c42 100644
--- a/src/font-view.c
+++ b/src/font-view.c
@@ -29,6 +29,7 @@
 #include FT_SFNT_NAMES_H
 #include FT_TRUETYPE_IDS_H
 #include <cairo/cairo-ft.h>
+#include <fontconfig/fontconfig.h>
 #include <gio/gio.h>
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
@@ -688,6 +689,14 @@ font_view_application_activate (GApplication *application)
 }
 
 static void
+font_view_application_quit_mainloop (GApplication *application)
+{
+    G_APPLICATION_CLASS (font_view_application_parent_class)->quit_mainloop (application);
+
+    FcFini ();
+}
+
+static void
 font_view_application_dispose (GObject *obj)
 {
     FontViewApplication *self = FONT_VIEW_APPLICATION (obj);
@@ -713,6 +722,7 @@ font_view_application_class_init (FontViewApplicationClass *klass)
     aclass->activate = font_view_application_activate;
     aclass->startup = font_view_application_startup;
     aclass->open = font_view_application_open;
+    aclass->quit_mainloop = font_view_application_quit_mainloop;
 
     oclass->dispose = font_view_application_dispose;
 }
@@ -721,6 +731,10 @@ static GApplication *
 font_view_application_new (void)
 {
     g_type_init ();
+
+    if (!FcInit ())
+        g_critical ("Can't initialize fontconfig library");
+
     return g_object_new (FONT_VIEW_TYPE_APPLICATION,
                          "application-id", "org.gnome.font-viewer",
                          "flags", G_APPLICATION_HANDLES_OPEN,



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