gnome-shell/gnome-shell-864872-unlock-by-mouse-motion.patch
Bjørn Lie d4505593a2 Accepting request 513774 from home:xiaoguang_wang:branches:SLE-classic-3-24-3
- Update sle-classic patches to version 3.24.3:
  + Update aboutMenu.js
  + Update endSession-dialog-update-time-label-every-sec.patch
  + Update gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch
  + Update gnome-shell-864872-unlock-by-mouse-motion.patch
  + Update gnome-shell-878951-hide-list-with-no-user.patch
  + Update gnome-shell-domain.patch
  + Update gnome-shell-gdm-login-applet.patch
  + Update gnome-shell-lock-bg-on-primary.patch
  + Update
    gnome-shell-login-fix-session-button-can-be-clicked.patch
  + Update gnome-shell-screen-disappear.patch
  + Update gs-fate318433-prevent-same-account-multi-logins.patch
  + Update gs-sle-classic-ext.patch

OBS-URL: https://build.opensuse.org/request/show/513774
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-shell?expand=0&rev=315
2017-08-05 12:05:52 +00:00

58 lines
2.3 KiB
Diff

Index: gnome-shell-3.24.2/js/ui/screenShield.js
===================================================================
--- gnome-shell-3.24.2.orig/js/ui/screenShield.js
+++ gnome-shell-3.24.2/js/ui/screenShield.js
@@ -438,6 +438,8 @@ const ScreenShield = new Lang.Class({
this.actor = Main.layoutManager.screenShieldGroup;
this._lockScreenState = MessageTray.State.HIDDEN;
+ this._last_x = -1;
+ this._last_y = -1;
this._lockScreenGroup = new St.Widget({ x_expand: true,
y_expand: true,
reactive: true,
@@ -447,6 +449,8 @@ const ScreenShield = new Lang.Class({
});
this._lockScreenGroup.connect('key-press-event',
Lang.bind(this, this._onLockScreenKeyPress));
+ this._lockScreenGroup.connect('motion-event',
+ Lang.bind(this, this._onLockScreenMotion));
this._lockScreenGroup.connect('scroll-event',
Lang.bind(this, this._onLockScreenScroll));
Main.ctrlAltTabManager.addGroup(this._lockScreenGroup, _("Lock"), 'changes-prevent-symbolic');
@@ -686,6 +690,25 @@ const ScreenShield = new Lang.Class({
return Clutter.EVENT_STOP;
},
+ _onLockScreenMotion: function(actor, event) {
+ if (this._lockScreenState != MessageTray.State.SHOWN)
+ return false;
+ let [X, Y] = event.get_coords();
+
+ if (this._last_x == -1)
+ this._last_x = X;
+ if (this._last_y == -1)
+ this._last_y = Y;
+
+ let min_distance = 10
+ let distance = Math.max(Math.abs(this._last_x - X),
+ Math.abs(this._last_y - Y));
+
+ if (distance >= min_distance)
+ this._liftShield(true, 0);
+ return true;
+ },
+
_onLockScreenScroll: function(actor, event) {
if (this._lockScreenState != MessageTray.State.SHOWN)
return Clutter.EVENT_PROPAGATE;
@@ -1005,6 +1028,8 @@ const ScreenShield = new Lang.Class({
return;
this._ensureLockScreen();
+ this._last_x = -1;
+ this._last_y = -1;
this._lockDialogGroup.scale_x = 1;
this._lockDialogGroup.scale_y = 1;