gnome-panel r11390 - trunk/applets/notification_area



Author: vuntz
Date: Tue Dec  9 03:47:48 2008
New Revision: 11390
URL: http://svn.gnome.org/viewvc/gnome-panel?rev=11390&view=rev

Log:
2008-12-09  Vincent Untz  <vuntz gnome org>

	* obox.[ch]: (na_obox_finalize), (na_obox_class_init), (na_obox_init),
	(get_class): g_type_class_peek() does not create a type if the class
	wasn't used before, so we need to call g_type_class_ref() (and later,
	g_type_class_unref())


Modified:
   trunk/applets/notification_area/ChangeLog
   trunk/applets/notification_area/obox.c
   trunk/applets/notification_area/obox.h

Modified: trunk/applets/notification_area/obox.c
==============================================================================
--- trunk/applets/notification_area/obox.c	(original)
+++ trunk/applets/notification_area/obox.c	Tue Dec  9 03:47:48 2008
@@ -38,12 +38,28 @@
 G_DEFINE_TYPE (NaOBox, na_obox, GTK_TYPE_BOX)
 
 static void
+na_obox_finalize (GObject *object)
+{
+  NaOBox *obox;
+
+  obox = NA_OBOX (object);
+
+  g_type_class_unref (obox->hbox_type);
+  g_type_class_unref (obox->vbox_type);
+
+  G_OBJECT_CLASS (na_obox_parent_class)->finalize (object);
+}
+
+static void
 na_obox_class_init (NaOBoxClass *class)
 {
+  GObjectClass   *gobject_class;
   GtkWidgetClass *widget_class;
 
+  gobject_class = (GObjectClass*) class;
   widget_class = (GtkWidgetClass*) class;
 
+  gobject_class->finalize = na_obox_finalize;
   widget_class->size_request = na_obox_size_request;
   widget_class->size_allocate = na_obox_size_allocate;
 }
@@ -52,6 +68,9 @@
 na_obox_init (NaOBox *obox)
 {
   obox->orientation = GTK_ORIENTATION_HORIZONTAL;
+
+  obox->hbox_type = g_type_class_ref (GTK_TYPE_HBOX);
+  obox->vbox_type = g_type_class_ref (GTK_TYPE_VBOX);
 }
 
 GtkWidget*
@@ -72,10 +91,10 @@
   switch (obox->orientation)
     {
     case GTK_ORIENTATION_HORIZONTAL:
-      klass = GTK_WIDGET_CLASS (g_type_class_peek (GTK_TYPE_HBOX));
+      klass = GTK_WIDGET_CLASS (obox->hbox_type);
       break;
     case GTK_ORIENTATION_VERTICAL:
-      klass = GTK_WIDGET_CLASS (g_type_class_peek (GTK_TYPE_VBOX));
+      klass = GTK_WIDGET_CLASS (obox->vbox_type);
       break;
     default:
       g_assert_not_reached ();

Modified: trunk/applets/notification_area/obox.h
==============================================================================
--- trunk/applets/notification_area/obox.h	(original)
+++ trunk/applets/notification_area/obox.h	Tue Dec  9 03:47:48 2008
@@ -51,6 +51,9 @@
   GtkBox box;
 
   GtkOrientation orientation;
+
+  gpointer       hbox_type;
+  gpointer       vbox_type;
 };
 
 struct _NaOBoxClass



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