[gnome-shell/wip/abono/maximize: 1/4] windowManager: Generalize translation values
- From: Alessandro Bono <abono src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/abono/maximize: 1/4] windowManager: Generalize translation values
- Date: Tue, 23 May 2017 16:12:13 +0000 (UTC)
commit af0d48a5270cd4edcbbb862f8f3faed1b559b8a4
Author: Alessandro Bono <abono gnome org>
Date: Sat May 20 16:34:35 2017 +0200
windowManager: Generalize translation values
Currently, the translation values are setted with the assumption
that one of the actors (actor or actorClone) represents a
fullscreen window. To generalize it, we translate 'actor'
in each dimension about the difference between targetRect and
sourceRect (e.g., targetRect.x - sourceRect.x). If the difference
is positive, it means that sourceRect is on the left of targetRect
(or above targetRect, if we are looking at y values), therefore,
we need a negative value to translate 'actor' to the left (or up).
The same logic applies if the difference is negative.
The (un)fullscreen case is not modified:
since the monitor rect actually matches the target rect (for
fullscreen) or the source rect (for unfullscreen), we can actually
substitute those, and get (sourceRect - targetRect) in one case,
and -(targetRect - sourceRect) in the other.
https://bugzilla.gnome.org/show_bug.cgi?id=766685
js/ui/windowManager.js | 14 +++-----------
1 files changed, 3 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index b987467..944ab67 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -1331,13 +1331,11 @@ const WindowManager = new Lang.Class({
actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
Main.uiGroup.add_actor(actorClone);
- let rect = change == Meta.SizeChange.FULLSCREEN ? oldFrameRect : null;
-
if (this._clearFullscreenInfo(actor))
this._shellwm.completed_size_change(actor);
actor.__fullscreenInfo = { clone: actorClone,
- oldRect: rect };
+ oldRect: oldFrameRect };
},
_sizeChangedWindow: function(shellwm, actor) {
@@ -1365,15 +1363,9 @@ const WindowManager = new Lang.Class({
transition: 'easeOutQuad'
});
- let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
let sourceRect = actor.__fullscreenInfo.oldRect;
- if (sourceRect) {
- actor.translation_x = sourceRect.x - monitor.x;
- actor.translation_y = sourceRect.y - monitor.y;
- } else {
- actor.translation_x = -(targetRect.x - monitor.x);
- actor.translation_y = -(targetRect.y - monitor.y);
- }
+ actor.translation_x = -(targetRect.x - sourceRect.x);
+ actor.translation_y = -(targetRect.y - sourceRect.y);
// Now set scale the actor to size it as the clone.
actor.scale_x = 1 / scaleX;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]