gnome-shell/js
Jasper St. Pierre a2e4153fa0 background: Fix cancellable issues
If we have the following sequence:

    cache.getImageContent({ filename: "foo", cancellable: cancellable1 });
    cache.getImageContent({ filename: "foo", cancellable: cancellable2 });
    cancellable1.cancel();

Then the second load will complete with "null" as its content, even though
it was never cancelled, and we'll see a blank image. Meanwhile, since the
second load simply appends to the list of callers for the second load,
cancellable2 does absolutely nothing: cancelling it won't stop the load,
and it will still receive onFinished handling.

To prevent this from happening, give the actual load operation its own
Gio.Cancellable, which is "ref-counted" -- only cancel it when all the other
possible callers cancel.

Additionally, clean up the large nested loops by splitting out duplicated
code and other stuff.

https://bugzilla.gnome.org/show_bug.cgi?id=722149
2014-01-31 17:57:57 -05:00
..
extensionPrefs Synchronize shell startup 2013-11-04 11:50:20 -05:00
gdm loginDialog: move user list loading after actors are constructed 2014-01-13 12:42:39 -05:00
misc ShellApp+ShellGlobal: unify app launch context code 2014-01-19 18:51:48 +01:00
perf perf: Update to latest overlay changes 2012-08-20 20:40:01 +02:00
ui background: Fix cancellable issues 2014-01-31 17:57:57 -05:00
js-resources.gresource.xml Add indicator for location service being used 2014-01-28 18:39:12 +00:00
Makefile.am build: Add built js-resources to CLEANFILES 2013-11-13 21:24:30 +01:00