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) {
|
_onCapturedEvent(actor, event) {
|
||||||
if (event.type() === Clutter.EventType.BUTTON_PRESS) {
|
if (event.type() === Clutter.EventType.BUTTON_PRESS) {
|
||||||
let source = event.get_source();
|
const targetActor = global.stage.get_event_actor(event);
|
||||||
if (source !== this._text &&
|
if (targetActor !== this._text &&
|
||||||
this._text.has_key_focus() &&
|
this._text.has_key_focus() &&
|
||||||
this._text.text === '' &&
|
this._text.text === '' &&
|
||||||
!this._text.has_preedit() &&
|
!this._text.has_preedit() &&
|
||||||
!Main.layoutManager.keyboardBox.contains(source)) {
|
!Main.layoutManager.keyboardBox.contains(targetActor)) {
|
||||||
// the user clicked outside after activating the entry, but
|
// the user clicked outside after activating the entry, but
|
||||||
// with no search term entered and no keyboard button pressed
|
// with no search term entered and no keyboard button pressed
|
||||||
// - cancel the search
|
// - cancel the search
|
||||||
|
Loading…
Reference in New Issue
Block a user