diff options
author | Andreas Müller <schnitzeltony@googlemail.com> | 2015-06-25 13:08:29 +0200 |
---|---|---|
committer | Eric Koegel <eric.koegel@gmail.com> | 2015-07-19 16:26:58 +0300 |
commit | e222c6f0535113997a7f5d9cc7cc5062733a0aa1 (patch) | |
tree | d126e1c36f243654cb06bd0ba97f34d1c182a969 | |
parent | 3189f478664a97e0d908b14703ead6274b932267 (diff) | |
download | xfdesktop-e222c6f0535113997a7f5d9cc7cc5062733a0aa1.tar.gz |
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@googlemail.com>
Signed-off-by: Eric Koegel <eric.koegel@gmail.com>
-rw-r--r-- | common/xfdesktop-common.c | 26 | ||||
-rw-r--r-- | common/xfdesktop-common.h | 1 | ||||
-rw-r--r-- | settings/main.c | 4 | ||||
-rw-r--r-- | 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 5d2c2551..1f180dff 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 d1a27456..9e76e788 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 bc68099d..b37abad9 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 6d3b3e66..13e1187e 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 |