appDisplay: Move click action to dialog
Now that the folder dialog covers the whole primary monitor, it eats all input events, and doesn't allow the event blocker to detect clicks. Move the click action to the folder dialog itself, and popdown the dialog if a click is triggered on the dialog (but not on any children). https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301
This commit is contained in:
parent
c790c01a3b
commit
5cfe5bf8c8
@ -387,18 +387,6 @@ class AppDisplay extends BaseAppView {
|
||||
this._swipeTracker.connect('update', this._swipeUpdate.bind(this));
|
||||
this._swipeTracker.connect('end', this._swipeEnd.bind(this));
|
||||
|
||||
this._clickAction = new Clutter.ClickAction();
|
||||
this._clickAction.connect('clicked', () => {
|
||||
if (!this._currentDialog)
|
||||
return;
|
||||
|
||||
let [x, y] = this._clickAction.get_coords();
|
||||
let actor = global.stage.get_actor_at_pos(Clutter.PickMode.ALL, x, y);
|
||||
if (!this._currentDialog.contains(actor))
|
||||
this._currentDialog.popdown();
|
||||
});
|
||||
this._eventBlocker.add_action(this._clickAction);
|
||||
|
||||
this._currentDialog = null;
|
||||
this._displayingDialog = false;
|
||||
this._currentDialogDestroyId = 0;
|
||||
@ -1449,6 +1437,17 @@ var AppFolderDialog = GObject.registerClass({
|
||||
work_area: true,
|
||||
}));
|
||||
|
||||
const clickAction = new Clutter.ClickAction();
|
||||
clickAction.connect('clicked', () => {
|
||||
const [x, y] = clickAction.get_coords();
|
||||
const actor =
|
||||
global.stage.get_actor_at_pos(Clutter.PickMode.ALL, x, y);
|
||||
|
||||
if (actor === this)
|
||||
this.popdown();
|
||||
});
|
||||
this.add_action(clickAction);
|
||||
|
||||
this._source = source;
|
||||
this._folder = folder;
|
||||
this._view = source.view;
|
||||
|
Loading…
Reference in New Issue
Block a user