forked from AuroraMiddleware/gtk
GtkPlacesSidebar: Cancel async ops when finalized
This is the common practice for objects that start async operations. https://bugzilla.gnome.org/show_bug.cgi?id=735953
This commit is contained in:
parent
c68fc27719
commit
768c0c21b5
@ -144,6 +144,7 @@ struct _GtkPlacesSidebar {
|
|||||||
|
|
||||||
/* volume mounting - delayed open process */
|
/* volume mounting - delayed open process */
|
||||||
GtkPlacesOpenFlags go_to_after_mount_open_flags;
|
GtkPlacesOpenFlags go_to_after_mount_open_flags;
|
||||||
|
GCancellable *cancellable;
|
||||||
|
|
||||||
GtkWidget *popup_menu;
|
GtkWidget *popup_menu;
|
||||||
GSList *shortcuts;
|
GSList *shortcuts;
|
||||||
@ -806,7 +807,7 @@ add_application_shortcuts (GtkPlacesSidebar *sidebar)
|
|||||||
"standard::display-name,standard::symbolic-icon",
|
"standard::display-name,standard::symbolic-icon",
|
||||||
G_FILE_QUERY_INFO_NONE,
|
G_FILE_QUERY_INFO_NONE,
|
||||||
G_PRIORITY_DEFAULT,
|
G_PRIORITY_DEFAULT,
|
||||||
NULL,
|
sidebar->cancellable,
|
||||||
on_app_shortcuts_query_complete,
|
on_app_shortcuts_query_complete,
|
||||||
sidebar);
|
sidebar);
|
||||||
}
|
}
|
||||||
@ -1234,7 +1235,7 @@ update_places (GtkPlacesSidebar *sidebar)
|
|||||||
"standard::display-name,standard::symbolic-icon",
|
"standard::display-name,standard::symbolic-icon",
|
||||||
G_FILE_QUERY_INFO_NONE,
|
G_FILE_QUERY_INFO_NONE,
|
||||||
G_PRIORITY_DEFAULT,
|
G_PRIORITY_DEFAULT,
|
||||||
NULL,
|
sidebar->cancellable,
|
||||||
on_bookmark_query_info_complete,
|
on_bookmark_query_info_complete,
|
||||||
clos);
|
clos);
|
||||||
}
|
}
|
||||||
@ -3771,6 +3772,8 @@ gtk_places_sidebar_init (GtkPlacesSidebar *sidebar)
|
|||||||
|
|
||||||
gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (sidebar)), GTK_STYLE_CLASS_SIDEBAR);
|
gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (sidebar)), GTK_STYLE_CLASS_SIDEBAR);
|
||||||
|
|
||||||
|
sidebar->cancellable = g_cancellable_new ();
|
||||||
|
|
||||||
create_volume_monitor (sidebar);
|
create_volume_monitor (sidebar);
|
||||||
|
|
||||||
sidebar->open_flags = GTK_PLACES_OPEN_NORMAL;
|
sidebar->open_flags = GTK_PLACES_OPEN_NORMAL;
|
||||||
@ -4053,6 +4056,13 @@ gtk_places_sidebar_dispose (GObject *object)
|
|||||||
|
|
||||||
sidebar = GTK_PLACES_SIDEBAR (object);
|
sidebar = GTK_PLACES_SIDEBAR (object);
|
||||||
|
|
||||||
|
if (sidebar->cancellable)
|
||||||
|
{
|
||||||
|
g_cancellable_cancel (sidebar->cancellable);
|
||||||
|
g_object_unref (sidebar->cancellable);
|
||||||
|
sidebar->cancellable = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
sidebar->tree_view = NULL;
|
sidebar->tree_view = NULL;
|
||||||
|
|
||||||
if (sidebar->drag_leave_timeout_id)
|
if (sidebar->drag_leave_timeout_id)
|
||||||
|
Loading…
Reference in New Issue
Block a user