searchController: Query stage for target actor instead of event.get_source()
Events are going to stop containing the destinatary, so stop using this API. Querying the stage is equivalent and ensured to be up-to-date. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2216>
This commit is contained in:
parent
17730fe5c4
commit
dc0f286fe9
@ -306,12 +306,12 @@ var SearchController = GObject.registerClass({
|
||||
|
||||
_onCapturedEvent(actor, event) {
|
||||
if (event.type() === Clutter.EventType.BUTTON_PRESS) {
|
||||
let source = event.get_source();
|
||||
if (source !== this._text &&
|
||||
const targetActor = global.stage.get_event_actor(event);
|
||||
if (targetActor !== this._text &&
|
||||
this._text.has_key_focus() &&
|
||||
this._text.text === '' &&
|
||||
!this._text.has_preedit() &&
|
||||
!Main.layoutManager.keyboardBox.contains(source)) {
|
||||
!Main.layoutManager.keyboardBox.contains(targetActor)) {
|
||||
// the user clicked outside after activating the entry, but
|
||||
// with no search term entered and no keyboard button pressed
|
||||
// - cancel the search
|
||||
|
Loading…
Reference in New Issue
Block a user