18
18
#ifdef ENABLE_DESKTOP_ICONS
19
19
#include "xfdesktop-icon-view.h"
20
@@ -352,6 +353,88 @@ create_bg_pixmap(GdkScreen *gscreen, gpo
22
gdouble system_font_size;
25
+ gchar *last_filename;
106
115
backdrop_changed_cb(XfceBackdrop *backdrop, gpointer user_data)
108
117
XfceDesktop *desktop = XFCE_DESKTOP(user_data);
109
@@ -387,6 +470,10 @@ backdrop_changed_cb(XfceBackdrop *backdr
118
GdkPixmap *pmap = desktop->priv->bg_pixmap;
119
GdkScreen *gscreen = desktop->priv->gscreen;
120
+ gchar *new_filename = NULL;
122
GdkRegion *clip_region = NULL;
123
gint i, monitor = -1, current_workspace;
111
126
if(monitor == -1)
113
128
+ /* notify Accountsservice of the new bg (only for monitor0) */
114
129
+ if(monitor == 0)
115
131
+ if (xfce_desktop_get_current_workspace(desktop) == 0)
116
+ set_accountsservice_user_bg(xfce_backdrop_get_image_filename(backdrop));
133
+ new_filename = g_strdup(xfce_backdrop_get_image_filename(backdrop));
134
+ if (g_strcmp0(desktop->priv->last_filename, new_filename) != 0)
136
+ desktop->priv->last_filename = g_strdup(new_filename);
137
+ set_accountsservice_user_bg(xfce_backdrop_get_image_filename(backdrop));
139
+ g_free(new_filename);
118
143
#ifdef G_ENABLE_DEBUG
119
144
monitor_name = gdk_screen_get_monitor_plug_name(gscreen, monitor);
145
@@ -1405,7 +1505,9 @@
146
desktop->priv->property_prefix = g_strdup(property_prefix);
148
xfce_desktop_connect_settings(desktop);
151
+ desktop->priv->last_filename = g_strdup("");
153
return GTK_WIDGET(desktop);