[Xfce4-commits] [xfce/xfdesktop] 01/02: Remove whitespaces from monitor name when accessing settings
noreply at xfce.org
noreply at xfce.org
Sun Jun 28 07:25:58 CEST 2015
This is an automated email from the git hooks/post-receive script.
eric pushed a commit to branch master
in repository xfce/xfdesktop.
commit da068958d30e702895de28405711b63efadb57ae
Author: Andreas Müller <schnitzeltony at googlemail.com>
Date: Thu Jun 25 13:08:29 2015 +0200
Remove whitespaces from monitor name when accessing settings
Desktop wallpaper could not be set here. Running
'xfdesktop-settings --enable-debug' lead to:
| Saving to /backdrop/screen0/monitorDISP3 BG - DI1/workspace0/last-image//usr/share/backgrounds/xfce/xfce-blue.jpg
and no change was found tracking with Settings Editor.
Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
Signed-off-by: Eric Koegel <eric.koegel at gmail.com>
---
common/xfdesktop-common.c | 26 ++++++++++++++++++++++++++
common/xfdesktop-common.h | 1 +
settings/main.c | 4 ++--
src/xfce-workspace.c | 11 +++++------
4 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/common/xfdesktop-common.c b/common/xfdesktop-common.c
index 5d2c255..1f180df 100644
--- a/common/xfdesktop-common.c
+++ b/common/xfdesktop-common.c
@@ -194,6 +194,32 @@ xfdesktop_popup_keyboard_grab_available(GdkWindow *win)
}
+/*
+ * xfdesktop_remove_whitspaces:
+ * remove all whitespaces from string (not only trailing or leading)
+ */
+gchar*
+xfdesktop_remove_whitspaces(gchar* str)
+{
+ gchar* dest;
+ gint offs, curr;
+
+ g_return_val_if_fail(str, NULL);
+
+ offs = 0;
+ dest = str;
+ for(curr=0; curr<=strlen(str); curr++) {
+ if(*dest == ' ' || *dest == '\t')
+ offs++;
+ else if(0 != offs)
+ *(dest-offs) = *dest;
+ dest++;
+ }
+
+ return str;
+}
+
+
#ifdef G_ENABLE_DEBUG
/* With --enable-debug=full turn on debugging messages from the start */
static gboolean enable_debug = TRUE;
diff --git a/common/xfdesktop-common.h b/common/xfdesktop-common.h
index d1a2745..9e76e78 100644
--- a/common/xfdesktop-common.h
+++ b/common/xfdesktop-common.h
@@ -100,6 +100,7 @@ gint xfce_translate_image_styles(gint input);
guint32 xfdesktop_popup_keyboard_grab_available(GdkWindow *win);
+gchar* xfdesktop_remove_whitspaces(gchar* str);
#if defined(G_HAVE_ISO_VARARGS)
diff --git a/settings/main.c b/settings/main.c
index bc68099..b37abad 100644
--- a/settings/main.c
+++ b/settings/main.c
@@ -795,9 +795,9 @@ xfdesktop_settings_generate_per_workspace_binding_string(AppearancePanel *panel,
panel->screen, panel->monitor, panel->workspace,
property);
} else {
- buf = g_strdup_printf("/backdrop/screen%d/monitor%s/workspace%d/%s",
+ buf = xfdesktop_remove_whitspaces(g_strdup_printf("/backdrop/screen%d/monitor%s/workspace%d/%s",
panel->screen, panel->monitor_name, panel->workspace,
- property);
+ property));
}
XF_DEBUG("name %s", buf);
diff --git a/src/xfce-workspace.c b/src/xfce-workspace.c
index 6d3b3e6..13e1187 100644
--- a/src/xfce-workspace.c
+++ b/src/xfce-workspace.c
@@ -157,7 +157,7 @@ xfce_workspace_set_xfconf_property_string(XfceWorkspace *workspace,
workspace->priv->property_prefix, monitor_num, workspace->priv->workspace_num, property);
} else {
g_snprintf(buf, sizeof(buf), "%smonitor%s/workspace%d/%s",
- workspace->priv->property_prefix, monitor_name, workspace->priv->workspace_num, property);
+ workspace->priv->property_prefix, xfdesktop_remove_whitspaces(monitor_name), workspace->priv->workspace_num, property);
g_free(monitor_name);
}
@@ -191,7 +191,7 @@ xfce_workspace_set_xfconf_property_value(XfceWorkspace *workspace,
workspace->priv->property_prefix, monitor_num, workspace->priv->workspace_num, property);
} else {
g_snprintf(buf, sizeof(buf), "%smonitor%s/workspace%d/%s",
- workspace->priv->property_prefix, monitor_name, workspace->priv->workspace_num, property);
+ workspace->priv->property_prefix, xfdesktop_remove_whitspaces(monitor_name), workspace->priv->workspace_num, property);
g_free(monitor_name);
}
@@ -609,8 +609,9 @@ xfce_workspace_connect_backdrop_settings(XfceWorkspace *workspace,
workspace->priv->property_prefix, monitor, workspace->priv->workspace_num);
} else {
g_snprintf(buf, sizeof(buf), "%smonitor%s/workspace%d/",
- workspace->priv->property_prefix, monitor_name, workspace->priv->workspace_num);
- }
+ workspace->priv->property_prefix, xfdesktop_remove_whitspaces(monitor_name), workspace->priv->workspace_num);
+ g_free(monitor_name);
+ }
pp_len = strlen(buf);
XF_DEBUG("prefix string: %s", buf);
@@ -674,8 +675,6 @@ xfce_workspace_connect_backdrop_settings(XfceWorkspace *workspace,
xfconf_g_property_bind(channel, buf, G_TYPE_STRING,
G_OBJECT(backdrop), "image-filename");
-
- g_free(monitor_name);
}
static void
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list