GNOME Bugzilla – Bug 621131
User switch applet performance issues
Last modified: 2010-06-11 00:20:08 UTC
The user switch applet does a few things that aren't ideal. * Tries to list all users just to tell if there are > 1 users on the system * Tries to do the above for each add/remove signal
*** Bug 621133 has been marked as a duplicate of this bug. ***
Created attachment 163241 [details] [review] Remove users-added signal harder
Created attachment 163242 [details] [review] Add API to queue loading of users Don't queue a load on construction in case it isn't needed.
Created attachment 163243 [details] [review] Add has-multiple-users property Clients that only want to take action when this changes don't have to list all users and watch for add/remove events.
Created attachment 163244 [details] [review] Add queue_load to load users
Created attachment 163245 [details] [review] Make applet use has-multiple-users property
Created attachment 163246 [details] [review] Load passwd file in thread
Created attachment 163247 [details] [review] Don't try to remove users from object path hash with no object path
Created attachment 163248 [details] [review] Use a cheaper way to find the active item in the list
Created attachment 163249 [details] [review] Don't waste time growing the widget if already grown
Created attachment 163250 [details] [review] Don't add all users to the model at once Chunk the updates into groups of 50. This is well more than can be displayed in the visible part of the list anyway. This prevents blocking the UI while the model is loaded.
Committed to master.