[gtk+/gtk-3-14] GtkPlacesSidebar: Don't pile up duplicate bookmarks



commit d46a271112a3b258ffbc244b63f872e56c24fe74
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Oct 5 13:34:28 2014 -0400

    GtkPlacesSidebar: Don't pile up duplicate bookmarks
    
    We get multiple notifications from the bookmark manager when
    something changes. Every time, we reconstruct the sidebar contents
    completely, by clearing the store. The bookmarks are added with
    async calls though, and the code was forgetting to cancel outstanding
    async requests, leading to multiple instances of the same bookmark
    getting added. Use the cancellable we already have to prevent that.
    
    This could be made much more efficient by not recreating the entire
    sidebar quite so often (3-5 times for a single bookmark rename).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=737679

 gtk/gtkplacessidebar.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c
index d1ab3ff..b30ddd1 100644
--- a/gtk/gtkplacessidebar.c
+++ b/gtk/gtkplacessidebar.c
@@ -915,6 +915,11 @@ update_places (GtkPlacesSidebar *sidebar)
   else
     original_uri = NULL;
 
+  g_cancellable_cancel (sidebar->cancellable);
+
+  g_object_unref (sidebar->cancellable);
+  sidebar->cancellable = g_cancellable_new ();
+
   gtk_list_store_clear (sidebar->store);
 
   sidebar->devices_header_added = FALSE;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]