user-selector: Purge items after listing users
The first call to act_user_manager_list_users() may lazily load and notify the 'is-loaded' property, in which case we end up indirectly recursing into reload_users(). Because we recurse *after* purging carousel items, the same user is added twice: once in the leaf recursion call, and once again in the call that notified the 'is-loaded' property. A simple workaround to this is purging carousel items after the call to act_user_manager_list_users().
This commit is contained in:
parent
b5e516bea0
commit
a4ac1d644d
|
@ -370,11 +370,11 @@ reload_users (MctUserSelector *self,
|
||||||
g_object_get (settings, "gtk-enable-animations", &animations, NULL);
|
g_object_get (settings, "gtk-enable-animations", &animations, NULL);
|
||||||
g_object_set (settings, "gtk-enable-animations", FALSE, NULL);
|
g_object_set (settings, "gtk-enable-animations", FALSE, NULL);
|
||||||
|
|
||||||
mct_carousel_purge_items (self->carousel);
|
|
||||||
|
|
||||||
list = act_user_manager_list_users (self->user_manager);
|
list = act_user_manager_list_users (self->user_manager);
|
||||||
g_debug ("Got %u users", g_slist_length (list));
|
g_debug ("Got %u users", g_slist_length (list));
|
||||||
|
|
||||||
|
mct_carousel_purge_items (self->carousel);
|
||||||
|
|
||||||
list = g_slist_sort (list, (GCompareFunc) sort_users);
|
list = g_slist_sort (list, (GCompareFunc) sort_users);
|
||||||
for (l = list; l; l = l->next)
|
for (l = list; l; l = l->next)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue