ScreenShield: constrain vertical movement of the screen lock

Don't allow dragging the screen lock above and below the screen,
as in particular dragging below breaks the illusion of the curtain.

https://bugzilla.gnome.org/show_bug.cgi?id=681143
This commit is contained in:
Giovanni Campagna 2012-08-04 00:14:34 +02:00
parent d0a94768a6
commit b53d18fe1c

View File

@ -310,7 +310,11 @@ const ScreenShield = new Lang.Class({
this._arrow.connect('repaint', Lang.bind(this, this._drawArrow)); this._arrow.connect('repaint', Lang.bind(this, this._drawArrow));
this._lockScreenContents.add_actor(this._arrow); this._lockScreenContents.add_actor(this._arrow);
let action = new Clutter.DragAction({ drag_axis: Clutter.DragAxis.Y_AXIS }); let dragArea = new Clutter.Rect({ origin: new Clutter.Point({ x: 0, y: -global.screen_height, }),
size: new Clutter.Size({ width: global.screen_width,
height: global.screen_height }) });
let action = new Clutter.DragAction({ drag_axis: Clutter.DragAxis.Y_AXIS,
drag_area: dragArea });
action.connect('drag-begin', Lang.bind(this, this._onDragBegin)); action.connect('drag-begin', Lang.bind(this, this._onDragBegin));
action.connect('drag-end', Lang.bind(this, this._onDragEnd)); action.connect('drag-end', Lang.bind(this, this._onDragEnd));
this._lockScreenGroup.add_action(action); this._lockScreenGroup.add_action(action);