overview: Avoid entering in overview mode during display grab op
ClutterGrab and display grab operations are pretty much mutually exclusive, but there's no mechanism to ensure a ClutterGrab does not step on top of an existing grab operation. This looks the only place that could trigger that (e.g. start dragging window, then move pointer to top/left corner), so skip over the situation here explicitly. Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5397 Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5181 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2281>
This commit is contained in:
parent
f4e03aa440
commit
378406e1f0
@ -448,8 +448,14 @@ var Overview = class {
|
||||
if (this._shown) {
|
||||
let shouldBeModal = !this._inXdndDrag;
|
||||
if (shouldBeModal && !this._modal) {
|
||||
let actionMode = Shell.ActionMode.OVERVIEW;
|
||||
let grab = Main.pushModal(global.stage, { actionMode });
|
||||
if (global.display.get_grab_op() !== Meta.GrabOp.NONE) {
|
||||
this.hide();
|
||||
return false;
|
||||
}
|
||||
|
||||
const grab = Main.pushModal(global.stage, {
|
||||
actionMode: Shell.ActionMode.OVERVIEW,
|
||||
});
|
||||
if (grab.get_seat_state() !== Clutter.GrabState.NONE) {
|
||||
this._grab = grab;
|
||||
this._modal = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user