[gnome-shell-extensions] native-window-placement: update for latest gnome-shell changes
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell-extensions] native-window-placement: update for latest gnome-shell changes
- Date: Thu, 22 Dec 2011 17:09:33 +0000 (UTC)
commit 4b76e797cfc1ca8221d85c7b003b4cf0e5b0e04f
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Thu Dec 22 17:30:43 2011 +0100
native-window-placement: update for latest gnome-shell changes
Recently gnome-shell changed the code to handle the window overlays
(to fix some bugs aboud the overlay flashing), which resulted in
invisible overlay with this extension. Fix by reimporting some code
from gnome-shell core.
extensions/native-window-placement/extension.js | 35 +++++++++++------------
1 files changed, 17 insertions(+), 18 deletions(-)
---
diff --git a/extensions/native-window-placement/extension.js b/extensions/native-window-placement/extension.js
index d3721e0..17910d7 100644
--- a/extensions/native-window-placement/extension.js
+++ b/extensions/native-window-placement/extension.js
@@ -114,7 +114,6 @@ function enable() {
resetState();
let settings = _me.convenience.getSettings(_metadata, 'native-window-placement');
- connectedSignals.push({ obj: settings, id: signalId });
let useMoreScreen = settings.get_boolean('use-more-screen');
signalId = settings.connect('changed::use-more-screen', function() {
useMoreScreen = settings.get_boolean('use-more-screen');
@@ -333,7 +332,7 @@ function enable() {
if (clone.inDrag)
continue;
- if (overlay)
+ if (overlay && initialPositioning)
overlay.hide();
if (animate && isOnCurrentWorkspace) {
if (!metaWindow.showing_on_its_workspace()) {
@@ -356,20 +355,11 @@ function enable() {
});
}
- Tweener.addTween(clone.actor,
- { x: x,
- y: y,
- scale_x: scale,
- scale_y: scale,
- time: Overview.ANIMATION_TIME,
- transition: 'easeOutQuad',
- onComplete: Lang.bind(this, function() {
- this._showWindowOverlay(clone, overlay, true);
- })
- });
+ this._animateClone(clone, overlay, x, y, scale, initialPositioning);
} else {
clone.actor.set_position(x, y);
clone.actor.set_scale(scale, scale);
+ this._updateWindowOverlayPositions(clone, overlay, x, y, scale, false);
this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace);
}
}
@@ -432,7 +422,7 @@ function enable() {
},
winInjections['updatePositions'] = Workspace.WindowOverlay.prototype.updatePositions;
- Workspace.WindowOverlay.prototype.updatePositions = function(cloneX, cloneY, cloneWidth, cloneHeight) {
+ Workspace.WindowOverlay.prototype.updatePositions = function(cloneX, cloneY, cloneWidth, cloneHeight, animate) {
let button = this.closeButton;
let title = this.title;
@@ -443,15 +433,24 @@ function enable() {
else
buttonX = cloneX + (cloneWidth - button._overlap);
- button.set_position(Math.floor(buttonX), Math.floor(buttonY));
+ if (animate)
+ this._animateOverlayActor(button, Math.floor(buttonX), Math.floor(buttonY));
+ else
+ button.set_position(Math.floor(buttonX), Math.floor(buttonY));
if (!title.fullWidth)
title.fullWidth = title.width;
- title.width = Math.min(title.fullWidth, cloneWidth);
+ let titleWidth = Math.min(title.fullWidth, cloneWidth);
- let titleX = cloneX + (cloneWidth - title.width) / 2;
+ let titleX = cloneX + (cloneWidth - titleWidth) / 2;
let titleY = cloneY - title.height + title._overlap;
- title.set_position(Math.floor(titleX), Math.floor(titleY));
+
+ if (animate)
+ this._animateOverlayActor(title, Math.floor(titleX), Math.floor(titleY));
+ else {
+ title.width = titleWidth;
+ title.set_position(Math.floor(titleX), Math.floor(titleY));
+ }
},
winInjections['_onStyleChanged'] = Workspace.WindowOverlay.prototype._onStyleChanged;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]