[Xfce4-commits] [xfce/xfdesktop] 01/02: Disconnect the directory signal handler
noreply at xfce.org
noreply at xfce.org
Tue Mar 25 18:51:44 CET 2014
This is an automated email from the git hooks/post-receive script.
eric pushed a commit to branch master
in repository xfce/xfdesktop.
commit 7975bd4457f8f0422712100b02ac9717836d1f17
Author: Eric Koegel <eric.koegel at gmail.com>
Date: Mon Mar 24 12:07:46 2014 +0300
Disconnect the directory signal handler
When changing folders ensure we disconnect the old directory
monitor signal handler and always release the directory monitor.
Additionally, this patch removes a clip call in the icon view
as it's not required at all.
---
src/xfce-backdrop.c | 26 +++++++++++++++++++++++++-
src/xfdesktop-icon-view.c | 3 ---
2 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/src/xfce-backdrop.c b/src/xfce-backdrop.c
index 6ee798b..36f0a60 100644
--- a/src/xfce-backdrop.c
+++ b/src/xfce-backdrop.c
@@ -363,8 +363,13 @@ xfce_backdrop_load_image_files(XfceBackdrop *backdrop)
backdrop->priv->image_files = list_image_files_in_dir(backdrop->priv->image_path);
- if(backdrop->priv->monitor)
+ if(backdrop->priv->monitor) {
+ g_signal_handlers_disconnect_by_func(G_OBJECT(backdrop->priv->monitor),
+ G_CALLBACK(cb_xfce_backdrop__image_files_changed),
+ backdrop);
+
g_object_unref(backdrop->priv->monitor);
+ }
/* monitor the new directory for changes */
backdrop->priv->monitor = g_file_monitor(gfile, G_FILE_MONITOR_NONE, NULL, NULL);
@@ -637,6 +642,15 @@ xfce_backdrop_finalize(GObject *object)
xfce_backdrop_clear_cached_image(backdrop);
+ if(backdrop->priv->monitor) {
+ g_signal_handlers_disconnect_by_func(G_OBJECT(backdrop->priv->monitor),
+ G_CALLBACK(cb_xfce_backdrop__image_files_changed),
+ backdrop);
+
+ g_object_unref(backdrop->priv->monitor);
+ backdrop->priv->monitor = NULL;
+ }
+
/* Free the image files list */
if(backdrop->priv->image_files) {
g_list_free_full(backdrop->priv->image_files, g_free);
@@ -999,6 +1013,16 @@ xfce_backdrop_set_image_filename(XfceBackdrop *backdrop, const gchar *filename)
if(g_strcmp0(old_dir, new_dir) != 0) {
g_list_free_full(backdrop->priv->image_files, g_free);
backdrop->priv->image_files = NULL;
+
+ /* release the directory monitor */
+ if(backdrop->priv->monitor) {
+ g_signal_handlers_disconnect_by_func(G_OBJECT(backdrop->priv->monitor),
+ G_CALLBACK(cb_xfce_backdrop__image_files_changed),
+ backdrop);
+
+ g_object_unref(backdrop->priv->monitor);
+ backdrop->priv->monitor = NULL;
+ }
}
g_free(old_dir);
diff --git a/src/xfdesktop-icon-view.c b/src/xfdesktop-icon-view.c
index 750aa0d..d3c4ebc 100644
--- a/src/xfdesktop-icon-view.c
+++ b/src/xfdesktop-icon-view.c
@@ -3040,9 +3040,6 @@ xfdesktop_icon_view_draw_image(cairo_t *cr, GdkPixbuf *pix, GdkRectangle *rect)
{
cairo_save(cr);
- gdk_cairo_rectangle(cr, rect);
- cairo_clip(cr);
-
gdk_cairo_set_source_pixbuf(cr, pix, rect->x, rect->y);
cairo_paint(cr);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list