void gis_page_apply_begin (GisPage *page, GisPageApplyCallback callback, gpointer user_data) { GisPageClass *klass; GisPagePrivate *priv = gis_page_get_instance_private (page); g_return_if_fail (GIS_IS_PAGE (page)); g_return_if_fail (priv->applying == FALSE); klass = GIS_PAGE_GET_CLASS (page); priv->apply_cb = callback; priv->apply_data = user_data; priv->apply_cancel = g_cancellable_new (); priv->applying = TRUE; if (!klass->apply (page, priv->apply_cancel)) { /* Shortcut case where we don't want apply, to avoid flicker */ gis_page_apply_complete (page, TRUE); } g_object_notify_by_pspec (G_OBJECT (page), obj_props[PROP_APPLYING]); }
static void enterprise_apply_complete (GisPage *dummy, gboolean valid, gpointer user_data) { GisAccountPage *page = GIS_ACCOUNT_PAGE (user_data); gis_driver_set_username (GIS_PAGE (page)->driver, NULL); gis_page_apply_complete (GIS_PAGE (page), valid); }