[gnome-shell/gbsneto/blur: 2/2] screenShield: Animate shield using translation_y
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/blur: 2/2] screenShield: Animate shield using translation_y
- Date: Thu, 28 Nov 2019 15:45:35 +0000 (UTC)
commit faa0e0adf17baf706f76bf769798ce08c1cc3131
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Nov 28 12:29:12 2019 -0300
screenShield: Animate shield using translation_y
Instead of using the 'y', which queues a full relayout and
thus forces effects to be reapplied, use the 'translation_y'
property, that doesn't force relayouts and allows the blur
effect to actually use the cached framebuffers a lot more.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/864
js/ui/screenShield.js | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
---
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index 8ca76c52a9..631b7f5288 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -786,7 +786,7 @@ var ScreenShield = class {
let newY = currentY - origY;
newY = clamp(newY, -global.stage.height, 0);
- this._lockScreenGroup.y = newY;
+ this._lockScreenGroup.translation_y = newY;
return true;
}
@@ -794,7 +794,7 @@ var ScreenShield = class {
_onDragEnd(_action, _actor, _eventX, _eventY, _modifiers) {
if (this._lockScreenState != MessageTray.State.HIDING)
return;
- if (this._lockScreenGroup.y < -(ARROW_DRAG_THRESHOLD * global.stage.height)) {
+ if (this._lockScreenGroup.translation_y < -(ARROW_DRAG_THRESHOLD * global.stage.height)) {
// Complete motion automatically
let [velocity_, velocityX_, velocityY] = this._dragAction.get_velocity(0);
this._liftShield(true, -velocityY);
@@ -802,10 +802,10 @@ var ScreenShield = class {
// restore the lock screen to its original place
// try to use the same speed as the normal animation
let h = global.stage.height;
- let duration = MANUAL_FADE_TIME * -this._lockScreenGroup.y / h;
+ let duration = MANUAL_FADE_TIME * -this._lockScreenGroup.translation_y / h;
this._lockScreenGroup.remove_all_transitions();
this._lockScreenGroup.ease({
- y: 0,
+ translation_y: 0,
duration,
mode: Clutter.AnimationMode.EASE_IN_QUAD,
onComplete: () => {
@@ -954,14 +954,14 @@ var ScreenShield = class {
// use the same speed regardless of original position
// if velocity is specified, it's in pixels per milliseconds
let h = global.stage.height;
- let delta = h + this._lockScreenGroup.y;
+ let delta = h + this._lockScreenGroup.translation_y;
let minVelocity = global.stage.height / CURTAIN_SLIDE_TIME;
velocity = Math.max(minVelocity, velocity);
let duration = delta / velocity;
this._lockScreenGroup.ease({
- y: -h,
+ translation_y: -h,
duration,
mode: Clutter.AnimationMode.EASE_IN_QUAD,
onComplete: () => this._hideLockScreenComplete(),
@@ -1023,10 +1023,10 @@ var ScreenShield = class {
let fadeToBlack = params.fadeToBlack;
if (params.animateLockScreen) {
- this._lockScreenGroup.y = -global.screen_height;
+ this._lockScreenGroup.translation_y = -global.screen_height;
this._lockScreenGroup.remove_all_transitions();
this._lockScreenGroup.ease({
- y: 0,
+ translation_y: 0,
duration: MANUAL_FADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]