static void infobar_response_cb (GtkInfoBar *info_bar, int response_id, gpointer user_data) { WallpaperData *wdata = user_data; const gchar *control_center_command = NULL; GError *error = NULL; g_return_if_fail (GTH_IS_BROWSER (wdata->browser)); switch (response_id) { case _RESPONSE_PREFERENCES: if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Cinnamon") == 0 || g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "X-Cinnamon") == 0) control_center_command = "cinnamon-settings backgrounds"; else if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "MATE") == 0) control_center_command = "mate-appearance-properties -p background"; else if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "GNOME") == 0) control_center_command = "gnome-control-center appearance"; else if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0) control_center_command = "unity-control-center appearance"; if (control_center_command != NULL && ! g_spawn_command_line_async (control_center_command, &error)) { _gtk_error_dialog_from_gerror_run (GTK_WINDOW (wdata->browser), _("Could not show the desktop background properties"), error); g_clear_error (&error); } break; case _RESPONSE_UNDO: wallpaper_style_set_as_current (&wdata->old_style); break; } gtk_widget_hide (GTK_WIDGET (info_bar)); wallpaper_data_free (wdata); }
static void infobar_response_cb (GtkInfoBar *info_bar, int response_id, gpointer user_data) { WallpaperData *wdata = user_data; GError *error = NULL; g_return_if_fail (GTH_IS_BROWSER (wdata->browser)); switch (response_id) { case _RESPONSE_PREFERENCES: if (! g_spawn_command_line_async (DESKTOP_BACKGROUND_PROPERTIES_COMMAND, &error)) { _gtk_error_dialog_from_gerror_run (GTK_WINDOW (wdata->browser), _("Could not show the desktop background properties"), error); g_clear_error (&error); } break; case _RESPONSE_UNDO: wallpaper_style_set_as_current (&wdata->old_style); break; } gtk_widget_hide (GTK_WIDGET (info_bar)); wallpaper_data_free (wdata); }
static void save_wallpaper_task_completed_cb (GthTask *task, GError *error, gpointer user_data) { WallpaperData *wdata = user_data; if (error != NULL) { _gtk_error_dialog_from_gerror_run (GTK_WINDOW (wdata->browser), _("Could not set the desktop background"), error); wallpaper_data_free (wdata); return; } wallpaper_data_set (wdata); }
static void copy_wallpaper_ready_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { WallpaperData *wdata = user_data; GError *error = NULL; if (! g_file_copy_finish (G_FILE (source_object), res, &error)) { _gtk_error_dialog_from_gerror_run (GTK_WINDOW (wdata->browser), _("Could not set the desktop background"), error); g_clear_error (&error); wallpaper_data_free (wdata); return; } wallpaper_data_set (wdata); }