Skip to content

user-panel: Don't wait for fprintd on initialization and don't limit enroll stages

When opening the user panel we g-c-c performs lots of sync operations that may cause a noticeable slowdown, especially when a fingerprint device is available, in fact set_fingerprint_label() call leads to:

  • DBus sync request of the system bus
  • fprintd dbus-activation
    • This leads to sync opening of all the devices, that might also cause a slowdown, depending on the devices drivers
  • Dbus sync calls to the device to get the list of enrolled fingerprints

Only after we've a reply, we update the g-c-c UI and continue the execution.

The fingerprint dialog code would need some global refactor, but to fix this without big changes, let's just use GTask that runs a thread in wich we do all the sync operations, and once done we finally update the widget state.

This might be done by refactoring the code quite a lot, but I'd like to have this cherry-picked to the stable branch, and so I kept the changes to the minimum, while further changes should be done in other MRs.

Edited by Marco Trevisan

Merge request reports