gnome-panel r11389 - trunk/applets/clock



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

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

	* obox.[ch]: (clock_obox_finalize), (clock_obox_class_init),
	(clock_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/clock/ChangeLog
   trunk/applets/clock/obox.c
   trunk/applets/clock/obox.h

Modified: trunk/applets/clock/obox.c
==============================================================================
--- trunk/applets/clock/obox.c	(original)
+++ trunk/applets/clock/obox.c	Tue Dec  9 03:47:28 2008
@@ -38,12 +38,28 @@
 G_DEFINE_TYPE (ClockOBox, clock_obox, GTK_TYPE_BOX)
 
 static void
+clock_obox_finalize (GObject *object)
+{
+  ClockOBox *obox;
+
+  obox = CLOCK_OBOX (object);
+
+  g_type_class_unref (obox->hbox_type);
+  g_type_class_unref (obox->vbox_type);
+
+  G_OBJECT_CLASS (clock_obox_parent_class)->finalize (object);
+}
+
+static void
 clock_obox_class_init (ClockOBoxClass *class)
 {
+  GObjectClass   *gobject_class;
   GtkWidgetClass *widget_class;
 
+  gobject_class = (GObjectClass*) class;
   widget_class = (GtkWidgetClass*) class;
 
+  gobject_class->finalize = clock_obox_finalize;
   widget_class->size_request = clock_obox_size_request;
   widget_class->size_allocate = clock_obox_size_allocate;
 }
@@ -53,6 +69,9 @@
 {
   obox->orientation = GTK_ORIENTATION_HORIZONTAL;
   obox->reverse_order = FALSE;
+
+  obox->hbox_type = g_type_class_ref (GTK_TYPE_HBOX);
+  obox->vbox_type = g_type_class_ref (GTK_TYPE_VBOX);
 }
 
 GtkWidget*
@@ -73,10 +92,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/clock/obox.h
==============================================================================
--- trunk/applets/clock/obox.h	(original)
+++ trunk/applets/clock/obox.h	Tue Dec  9 03:47:28 2008
@@ -52,6 +52,9 @@
 
   GtkOrientation orientation;
   gboolean       reverse_order;
+
+  gpointer       hbox_type;
+  gpointer       vbox_type;
 };
 
 struct _ClockOBoxClass



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