panel: Allow restoring maximized/tiled windows by touch
Maximized and tiled windows can be restored with a drag gesture,
not only from their titlebars, but also from any non-reactive
parts of the top bar above the window. Currently this only works
for actual pointer devices, extend the behavior to handle touch
as well.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/112
(cherry picked from commit 905801b178
)
This commit is contained in:
parent
445eed40a7
commit
721ce54037
@ -796,6 +796,7 @@ var Panel = new Lang.Class({
|
|||||||
this.actor.connect('get-preferred-height', this._getPreferredHeight.bind(this));
|
this.actor.connect('get-preferred-height', this._getPreferredHeight.bind(this));
|
||||||
this.actor.connect('allocate', this._allocate.bind(this));
|
this.actor.connect('allocate', this._allocate.bind(this));
|
||||||
this.actor.connect('button-press-event', this._onButtonPress.bind(this));
|
this.actor.connect('button-press-event', this._onButtonPress.bind(this));
|
||||||
|
this.actor.connect('touch-event', this._onButtonPress.bind(this));
|
||||||
this.actor.connect('key-press-event', this._onKeyPress.bind(this));
|
this.actor.connect('key-press-event', this._onKeyPress.bind(this));
|
||||||
|
|
||||||
Main.overview.connect('showing', () => {
|
Main.overview.connect('showing', () => {
|
||||||
@ -939,8 +940,13 @@ var Panel = new Lang.Class({
|
|||||||
if (event.get_source() != actor)
|
if (event.get_source() != actor)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
let button = event.get_button();
|
let type = event.type();
|
||||||
if (button != 1)
|
let isPress = type == Clutter.EventType.BUTTON_PRESS;
|
||||||
|
if (!isPress && type != Clutter.EventType.TOUCH_BEGIN)
|
||||||
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
|
let button = isPress ? event.get_button() : -1;
|
||||||
|
if (isPress && button != 1)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
let focusWindow = global.display.focus_window;
|
let focusWindow = global.display.focus_window;
|
||||||
|
Loading…
Reference in New Issue
Block a user