From e18af0c730ecf306ad81b075167ce596309739a7 Mon Sep 17 00:00:00 2001 From: infirit Date: Mon, 15 Dec 2014 23:52:55 +0100 Subject: Revert "mate-screenshot: simplify get_desktop_dir()" This reverts commit 21c397d825cb06890efb0e847c13b9c3c6254db0. --- mate-screenshot/mate-screenshot.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'mate-screenshot/mate-screenshot.c') diff --git a/mate-screenshot/mate-screenshot.c b/mate-screenshot/mate-screenshot.c index 40d10d06..0e122b47 100644 --- a/mate-screenshot/mate-screenshot.c +++ b/mate-screenshot/mate-screenshot.c @@ -1120,8 +1120,34 @@ prepare_screenshot_timeout (gpointer data) static gchar * get_desktop_dir (void) { + gboolean desktop_is_home_dir = FALSE; gchar *desktop_dir; - desktop_dir = g_strconcat ("file://", g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP), NULL); + const char * const *schemas; + gboolean schema_exists = FALSE; + gint i; + + /* Check if caja schema is installed before trying to read settings */ + schemas = g_settings_list_schemas (); + for (i = 0; schemas[i] != NULL; i++) { + if (g_strcmp0 (schemas[i], CAJA_PREFERENCES_SCHEMA) == 0) { + schema_exists = TRUE; + break; + } + } + + if (schema_exists) { + GSettings *caja_prefs; + + caja_prefs = g_settings_new (CAJA_PREFERENCES_SCHEMA); + desktop_is_home_dir = g_settings_get_boolean (caja_prefs, "desktop-is-home-dir"); + + g_object_unref (caja_prefs); + } + + if (desktop_is_home_dir) + desktop_dir = g_strconcat ("file://", g_get_home_dir (), NULL); + else + desktop_dir = g_strconcat ("file://", g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP), NULL); return desktop_dir; } -- cgit v1.2.1