 +
 +  g_type_class_add_private (klass, sizeof (GtkNSViewPrivate));
 +
-+  object_class->dispose = gtk_ns_view_dispose;
++  object_class->finalize = gtk_ns_view_finalize;
 +  object_class->set_property = gtk_ns_view_set_property;
 +  object_class->get_property = gtk_ns_view_get_property;
 +  object_class->notify = gtk_ns_view_notify;
 +
++  widget_class->unrealize = gtk_ns_view_unrealize;
 +  widget_class->map = gtk_ns_view_map;
 +  widget_class->unmap = gtk_ns_view_unmap;
 +  widget_class->size_request = gtk_ns_view_size_request;

+      ns_view->priv->view = NULL;
+    }
+
+  G_OBJECT_CLASS (gtk_ns_view_parent_class)->dispose (object);
+}
+
+static void

+}
+
+static void
+gtk_ns_view_unrealize (GtkWidget *widget)
+{
+  if (gtk_widget_get_mapped (widget))
+    gtk_widget_unmap (widget);
+
+  GTK_WIDGET_CLASS (gtk_ns_view_parent_class)->unrealize (widget);
+}
+
+static void
+gtk_ns_view_map (GtkWidget *widget)
+{
+  GtkNSView *ns_view = GTK_NS_VIEW (widget);
