mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
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
1 changed files with 11 additions and 12 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue