static void portal_job_complete (GtkPrintJob *job, gpointer data, const GError *error) { GtkPrintOperation *op = data; GtkPrintOperationPortal *op_portal = op->priv->platform_data; GtkPrintSettings *settings; const char *uri; char *filename; int fd, idx; GVariantBuilder opt_builder; GUnixFDList *fd_list; if (error != NULL && op->priv->error == NULL) { g_warning ("Print job failed: %s", error->message); op->priv->error = g_error_copy (error); return; } op_portal->file_written = TRUE; settings = gtk_print_job_get_settings (job); uri = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_URI); filename = g_filename_from_uri (uri, NULL, NULL); fd = open (filename, O_RDONLY|O_CLOEXEC); fd_list = g_unix_fd_list_new (); idx = g_unix_fd_list_append (fd_list, fd, NULL); close (fd); g_free (filename); g_variant_builder_init (&opt_builder, G_VARIANT_TYPE_VARDICT); g_variant_builder_add (&opt_builder, "{sv}", "token", g_variant_new_uint32 (op_portal->token)); g_dbus_proxy_call_with_unix_fd_list (op_portal->proxy, "Print", g_variant_new ("(ssh@a{sv})", "", /* window */ _("Print"), /* title */ idx, g_variant_builder_end (&opt_builder)), G_DBUS_CALL_FLAGS_NONE, -1, fd_list, NULL, print_file_done, op); g_object_unref (fd_list); }
static void take_inhibitor (NMSleepMonitor *self) { g_assert (self->inhibit_fd == -1); nm_log_dbg (LOGD_SUSPEND, "Taking systemd sleep inhibitor"); g_dbus_proxy_call_with_unix_fd_list (self->sd_proxy, "Inhibit", g_variant_new ("(ssss)", "sleep", "NetworkManager", _("NetworkManager needs to turn off networks"), "delay"), 0, G_MAXINT, NULL, NULL, inhibit_done, self); }
static void take_inhibit(Context *context) { if(context->state.lid_inhibit_fd >= 0) { return; } else { g_dbus_proxy_call_with_unix_fd_list(context->proxy, "Inhibit", g_variant_new("(ssss)", "handle-lid-switch", "monitord", "support clamshell.", "block"), G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, &take_inhibit_cb, context); } }