From 32b910996722afd24dff7df833613457ccc4f72b Mon Sep 17 00:00:00 2001 From: Andy Holmes Date: Thu, 1 Jun 2023 15:54:59 -0700 Subject: [PATCH] overview: Provide public access for search provider registration Provide a reasonably public way to register and unregister search providers, without adding too much API. `Main.overview.searchController` provides access that may be generally useful, while `SearchController.addProvider()` and `SearchController.removeProvider()` provide a simple interface for extensions. Part-of: --- js/ui/overview.js | 8 ++++++++ js/ui/overviewControls.js | 4 ++++ js/ui/searchController.js | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/js/ui/overview.js b/js/ui/overview.js index c2c2e5326..3bd62afe1 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -102,6 +102,10 @@ class OverviewActor extends St.BoxLayout { return this._controls.dash; } + get searchController() { + return this._controls.searchController; + } + get searchEntry() { return this._controls.searchEntry; } @@ -708,6 +712,10 @@ var Overview = class extends Signals.EventEmitter { return this.dash.showAppsButton; } + get searchController() { + return this._overview.searchController; + } + get searchEntry() { return this._overview.searchEntry; } diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js index 18df17278..05898955d 100644 --- a/js/ui/overviewControls.js +++ b/js/ui/overviewControls.js @@ -871,6 +871,10 @@ class ControlsManager extends St.Widget { }); } + get searchController() { + return this._searchController; + } + get searchEntry() { return this._searchEntry; } diff --git a/js/ui/searchController.js b/js/ui/searchController.js index ef7a9d50e..9864b8df6 100644 --- a/js/ui/searchController.js +++ b/js/ui/searchController.js @@ -320,6 +320,26 @@ var SearchController = GObject.registerClass({ return Clutter.EVENT_PROPAGATE; } + /** + * addProvider: + * @param {object} provider - a search provider implementation + * + * Add a search provider to the controller. + */ + addProvider(provider) { + this._searchResults._registerProvider(provider); + } + + /** + * removeProvider: + * @param {object} provider - a search provider implementation + * + * Remove a search provider from the controller. + */ + removeProvider(provider) { + this._searchResults._unregisterProvider(provider); + } + get searchActive() { return this._searchActive; }