[gtk+] GtkPlacesSidebar: Don't pile up duplicate bookmarks
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GtkPlacesSidebar: Don't pile up duplicate bookmarks
- Date: Sun, 5 Oct 2014 17:39:56 +0000 (UTC)
commit b858d45e3c46936dc293461237face0f653f53c8
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 2579fcf..108d3c7 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]