void gdl_dock_object_unbind (GdlDockObject *object) { g_return_if_fail (object != NULL); g_object_ref (object); /* detach the object first */ if (GDL_DOCK_OBJECT_ATTACHED (object)) gdl_dock_object_detach (object, TRUE); if (object->master) { GObject *master = object->master; g_object_remove_weak_pointer (master, (gpointer *) &object->master); object->master = NULL; gdl_dock_master_remove (GDL_DOCK_MASTER (master), object); g_object_notify (G_OBJECT (object), "master"); } g_object_unref (object); }
/** * gdl_dock_object_unbind: * @object: A #GdlDockObject * * This removes the link between an dock object and its master. */ void gdl_dock_object_unbind (GdlDockObject *object) { g_return_if_fail (object != NULL); g_object_ref (object); /* detach the object first */ gdl_dock_object_detach (object, TRUE); if (object->priv->master) { GObject *master = object->priv->master; g_object_remove_weak_pointer (master, (gpointer *) &object->priv->master); object->priv->master = NULL; #ifndef GDL_DISABLE_DEPRECATED object->deprecated_master = NULL; #endif gdl_dock_master_remove (GDL_DOCK_MASTER (master), object); g_object_notify (G_OBJECT (object), "master"); } g_object_unref (object); }