screenshot: Properly clean up if PickColor() is cancelled

We currently only remove the screenshot operation from the shooter
map if the color pick operation completed successfully, but not if
it was cancelled. As a result, we now reject any further requests
from the same sender because we assume that there is an ongoing
operation.

Fix this by moving the cleanup to a finally clause that runs for
both code paths.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1288
This commit is contained in:
Florian Müllner 2020-05-29 00:27:34 +02:00
parent c8d91b2c30
commit 99ebef504d

View File

@ -292,6 +292,8 @@ var ScreenshotService = class {
invocation.return_error_literal(
Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
'Operation was cancelled');
} finally {
this._removeShooterForSender(invocation.get_sender());
}
}
};